kubectl get nodes 显示 NotReady

San*_*Nag 14 kubernetes kubectl kubeadm

kubernetes 1.12.1在云虚拟机中安装了两个节点,都在 Internet 代理后面。每个 VM 都有关联的浮动 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
Run Code Online (Sandbox Code Playgroud)

在运行之前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
Run Code Online (Sandbox Code Playgroud)

我缺少任何配置吗?我需要在各自的 VM 中添加192.168.0.153和吗?192.168.0.25/etc/hosts

Sha*_*Pai 8

看起来 pod network 尚未安装在您的集群上。例如,您可以使用以下命令安装 weave

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

几秒钟后,一个 Weave Net pod 应该在每个节点上运行,您创建的任何其他 pod 将自动连接到 Weave 网络。

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

在这次检查之后

$ kubectl describe nodes
Run Code Online (Sandbox Code Playgroud)

检查一切正常,如下所示

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
Run Code Online (Sandbox Code Playgroud)

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

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

$ journalctl -u kubelet
Run Code Online (Sandbox Code Playgroud)


Jav*_*eel 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
Run Code Online (Sandbox Code Playgroud)