kubectl get cs查看组件状态kube-scheduler和kube-controller-manager显示unhealthy

通过kubeadm安装的k8s集群获取kube-scheduler和kube-controller-manager组件状态异常

$ kubectl get cs
NAME                 STATUS      MESSAGE                                                                                     ERROR
controller-manager   Unhealthy   Get http://127.0.0.1:10252/healthz: dial tcp 127.0.0.1:10252: connect: connection refused
scheduler            Unhealthy   Get http://127.0.0.1:10251/healthz: dial tcp 127.0.0.1:10251: connect: connection refused
etcd-0               Healthy     {"health":"true"}

kubernetes版本:v1.18.6

镜像信息

$ sudo docker images
REPOSITORY                           TAG                 IMAGE ID            CREATED             SIZE
nginx                                latest              8cf1bfb43ff5        4 hours ago         132MB
k8s.gcr.io/kube-proxy                v1.18.6             c3d62d6fe412        6 days ago          117MB
k8s.gcr.io/kube-apiserver            v1.18.6             56acd67ea15a        6 days ago          173MB
k8s.gcr.io/kube-controller-manager   v1.18.6             ffce5e64d915        6 days ago          162MB
k8s.gcr.io/kube-scheduler            v1.18.6             0e0972b2b5d1        6 days ago          95.3MB
quay.io/coreos/flannel               v0.12.0-amd64       4e9f801d2217        4 months ago        52.8MB
k8s.gcr.io/pause                     3.2                 80d28bedfe5d        5 months ago        683kB
k8s.gcr.io/coredns                   1.6.7               67da37a9a360        5 months ago        43.8MB
k8s.gcr.io/etcd                      3.4.3-0             303ce5db0e90        9 months ago        288MB

k8s组件pod状态

$ kubectl get pods -A
NAMESPACE     NAME                              READY   STATUS    RESTARTS   AGE
kube-system   coredns-66bff467f8-22hgp          1/1     Running   0          45m
kube-system   coredns-66bff467f8-ck6qq          1/1     Running   0          45m
kube-system   etcd-node-14                      1/1     Running   0          46m
kube-system   kube-apiserver-node-14            1/1     Running   0          46m
kube-system   kube-controller-manager-node-14   1/1     Running   0          17m
kube-system   kube-flannel-ds-amd64-lm7lt       1/1     Running   0          44m
kube-system   kube-proxy-5hghv                  1/1     Running   0          45m
kube-system   kube-scheduler-node-14            1/1     Running   0          17m

排查思路:

1、先查看本地的端口,可以确认没有启动10251、10252端口

 

 

 

2、确认kube-scheduler和kube-controller-manager组件配置是否禁用了非安全端口

配置文件路径:/etc/kubernetes/manifests/scheduler.conf 、/etc/kubernetes/manifests/controller-manager.conf

如controller-manager组件的配置如下:可以去掉--port=0这个设置,然后重启sudo systemctl restart kubelet

 

重启服务之后确认组件状态,显示就正常了

$ kubectl get cs
NAME                 STATUS    MESSAGE             ERROR
scheduler            Healthy   ok
controller-manager   Healthy   ok
etcd-0               Healthy   {"health":"true"}


 

 

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: `kubectl get pods -n kube-system` 指令会查询 `kube-system` 命名空间中的所有 Pod。这个命令的输出将会列出该命名空间中的每个 Pod 的名称、状态、重启次数和其他信息。如果您希望查看其他命名空间中的 Pod,可以将 `-n kube-system` 替换为目标命名空间的名称。 例如: ``` $ kubectl get pods -n kube-system NAME READY STATUS RESTARTS AGE coredns-86c58d9df4-26tzj 1/1 Running 0 6d coredns-86c58d9df4-m8nh9 1/1 Running 0 6d etcd-minikube 1/1 Running 0 6d kube-apiserver-minikube 1/1 Running 0 6d kube-controller-manager-minikube 1/1 Running 0 6d kube-proxy-6xm7h 1/1 Running 0 6d kube-scheduler-minikube 1/1 Running 0 6d storage-provisioner 1/1 Running 0 6d ``` ### 回答2: kubectl get pods -n kube-system 是一个命令,用于在 Kubernetes 集群中获取 kube-system 命名空间中的所有 Pod。Kubernetes 使用命名空间来对不同组件进行分类和组织,kube-system 命名空间是用于部署和管理 Kubernetes 系统组件的默认命名空间。 在运行该命令后,系统会返回 kube-system 命名空间中所有的 Pod 的详细信息,包括 Pod 的名称、运行状态、所属节点、IP 地址等。这些信息有助于管理员和开发人员检查和监控 Kubernetes 系统的运行状态。 通过使用 -n kube-system 参数,我们指定了要获取的 Pod 所在的命名空间。命名空间的概念使得在 Kubernetes 集群中可以同时运行多个不同的应用或系统组件,每个命名空间都是相互隔离的。 用这个命令可以查看 kube-system 命名空间中的 Pod,由于 kube-system 命名空间中部署了一些关键的系统组件,如 kube-proxy、coredns、metrics-server 等,检查它们的运行状态是非常重要的。如果发现其中某个 Pod 处于异常状态或者失败,可能会影响整个集群的正常运行。 总之,kubectl get pods -n kube-system 是一个方便的命令,用于查看 Kubernetes 系统组件状态和运行情况,有助于管理员和开发人员监控集群的健康状态。 ### 回答3: `kubectl get pods -n kube-system` 是一个 Kubernetes 命令行工具(kubectl)的命令。这个命令的作用是获取命名空间为 kube-system 的所有 Pod(容器)。以下是对这个命令的解释和一些相关信息: `kubectl get pods` 是用于获取 Kubernetes 集群中的所有 Pod 的命令。通过使用 `-n` 标志,我们可以指定要获取的 Pod 所属的命名空间。在这里,我们使用 `kube-system` 作为命名空间。 命名空间是 Kubernetes 中一种用于隔离和组织资源的概念。命名空间可以帮助管理员对不同的组件和功能进行分类和管理。命名空间有默认的系统命名空间,如 `kube-system`,用于管理 Kubernetes 自身的组件和功能。这些组件包括 kube-proxy、kube-dns、kube-schedulerkube-controller-manager 等。 `kubectl get pods -n kube-system` 命令将返回位于 `kube-system` 命名空间的所有 Pod 的列表。列表中将包含每个 Pod 的名称、状态、重启次数、运行时间等信息。这些信息可以帮助管理员监控和管理集群中的容器。 总之,`kubectl get pods -n kube-system` 是一个用于在 Kubernetes 集群中获取 `kube-system` 命名空间下所有 Pod 信息的命令。这个命令是管理 Kubernetes 集群的常用操作之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值