所有分类
  • 所有分类
  • 未分类

K8S–解决dashboard一直Pending的问题

简介

本文介绍如何解决K8S一直Pending的问题。

问题描述

在master里安装dashboard后,查看状态发现一直是Pending。

如下图所示:

命令

kubectl get pods -n kubernetes-dashboard

或者

kubectl get pods -A

结果

排查方法

用K8S排查问题的命令查看一下:

命令格式

kubectl describe pod <pod-name> -n <namespace>

pod-name和namespace:都是kubectl get pods命令的执行结果对应的列:

K8S自带的namespace是:kube-system。

命令

kubectl describe pod dashboard-metrics-scraper-5657497c4c-mnl46 -n kubernetes-dashboard

本处的 dashboard-metrics-scraper-5657497c4c-mnl46就是前边kubectl get pods -n kubernetes-dashboard结果中的NAME列。

结果: 

重点是最下边这句:

Warning  FailedScheduling  7s (x21464 over 17h)  default-scheduler  0/1 nodes are available: 1 node(s) had taints that the pod didn't tolerate.

因为K8S默认不让pod部署到master节点,而我们部署的测试环境只有一个节点也是master节点,需要允许master节点部署pod。

解决方案

方案是:需要允许master节点部署pod(手动删除master的污点)。

1.查找污点的key

方法1

命令

kubectl describe nodes | grep Taints

结果(红框内就是污点的key)

方法2

命令

kubectl get nodes -o yaml | grep taint -C 5

结果(红框内就是污点的key)

2.删除污点

命令格式:

kubectl taint nodes --all <key>-

命令

kubectl taint nodes --all node-role.kubernetes.io/control-plane-

结果

3.查看dashboard状态 

kubectl get pods -n kubernetes-dashboard

结果(状态变了,变成了:正在创建容器。)

过一会儿再次看状态(变成了:拉取镜像失败)

结论

Pending问题解决了,但出现了无法创建镜像的问题。解决方法见:解决K8S的dashboard的ImagePullBackOff和ErrImagePull的问题-自学精灵

0

评论0

请先

显示验证码
没有账号?注册  忘记密码?

社交账号快速登录