kubectl get 节点显示 NotReady

问题描述 投票:0回答:5

我在云虚拟机中安装了两个节点

kubernetes 1.12.1
,都位于互联网代理后面。每个虚拟机都有关联的浮动 IP 来通过 SSH 连接,
kube-01
是主节点,
kube-02
是节点。执行导出:

no_proxy=127.0.0.1,localhost,10.157.255.185,192.168.0.153,kube-02,192.168.0.25,kube-01

在运行

kubeadm init
之前,但我得到
kubectl get nodes
的以下状态:

NAME      STATUS     ROLES    AGE   VERSION
kube-01   NotReady   master   89m   v1.12.1
kube-02   NotReady   <none>   29s   v1.12.2

我是否缺少任何配置?我需要在各自虚拟机的

192.168.0.153
中添加
192.168.0.25
/etc/hosts
吗?

kubernetes kubectl kubeadm
5个回答
11
投票

您的集群上似乎尚未安装 pod 网络。例如,您可以使用以下命令安装 weave

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

几秒钟后,Weave Net Pod 应该在每个节点上运行,并且您创建的任何其他 Pod 将自动附加到 Weave 网络。

您可以安装您选择的 Pod 网络。这是一个列表

检查后

$ kubectl describe nodes

检查一切是否正常,如下所示

Conditions:
  Type              Status
  ----              ------
  OutOfDisk         False
  MemoryPressure    False
  DiskPressure      False
  Ready             True
Capacity:
 cpu:       2
 memory:    2052588Ki
 pods:      110
Allocatable:
 cpu:       2
 memory:    1950188Ki
 pods:      110

接下来通过 ssh 连接到尚未准备好的 pod,并观察 kubelet 日志。最可能的错误可能是证书和身份验证。

您还可以在systemd上使用journalctl来检查kubelet错误。

$ journalctl -u kubelet

1
投票

尝试用这个

您的 coredns 处于挂起状态,请检查您使用的网络插件,并检查是否添加了正确的插件

查看 kubernates 故障排除指南

https://kubernetes.io/docs/setup/independent/troubleshooting-kubeadm/#coredns-or-kube-dns-is-stuck-in-the-pending-state

https://kubernetes.io/docs/concepts/cluster-administration/addons/

并安装以下内容

并检查

kubectl get pods -n kube-system

0
投票

万一其他人也有同样的情况,就我而言,我使用了错误的 AMI 映像来创建节点组。


0
投票

奔跑

journalctl -u kubelet

然后检查节点日志,如果出现以下错误,请使用

swapoff -a

禁用 sawp

"Failed to run kubelet" err="无法运行 Kubelet: 不支持使用 swap 运行,请禁用 swap! 或设置 --fa 主进程退出,代码=退出,状态=1/FAILURE


0
投票

我发现,如果您删除一个节点并使用相同的名称重新配置和重新加入它,而不发出节点删除命令,该节点将加入但报告 NotReady 状态,而没有太多其他信息来指示问题。

可能是与以前的同名系统绑定的身份验证问题。

重命名新节点或发出问题

kubectl delete node <nodename>

© www.soinside.com 2019 - 2024. All rights reserved.