我在云虚拟机中安装了两个节点
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
吗?
您的集群上似乎尚未安装 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
尝试用这个
您的 coredns 处于挂起状态,请检查您使用的网络插件,并检查是否添加了正确的插件
查看 kubernates 故障排除指南
https://kubernetes.io/docs/concepts/cluster-administration/addons/
并安装以下内容
并检查
kubectl get pods -n kube-system
万一其他人也有同样的情况,就我而言,我使用了错误的 AMI 映像来创建节点组。
奔跑
journalctl -u kubelet
然后检查节点日志,如果出现以下错误,请使用
swapoff -a
禁用 sawp
"Failed to run kubelet" err="无法运行 Kubelet: 不支持使用 swap 运行,请禁用 swap! 或设置 --fa 主进程退出,代码=退出,状态=1/FAILURE
我发现,如果您删除一个节点并使用相同的名称重新配置和重新加入它,而不发出节点删除命令,该节点将加入但报告 NotReady 状态,而没有太多其他信息来指示问题。
可能是与以前的同名系统绑定的身份验证问题。
重命名新节点或发出问题
kubectl delete node <nodename>