“kubectl get nodes”在提供适当的IP后甚至会显示NotReady

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“kubectl get nodes”在提供适当的IP后甚至会显示NotReady相关的知识,希望对你有一定的参考价值。

我正在尝试设置一个kubernetes集群,用于测试目的与主人和一个小兵。当我运行kubectl get节点时,它总是说NotReady。在/ etc / kubernetes / kubelet中对minion进行配置

KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_PORT="--port=10250"
KUBELET_HOSTNAME="--hostname-override=centos-minion"
KUBELET_API_SERVER="--api-servers=http://centos-master:8080"
KUBELET_ARGS=""

当kubelete服务启动后,可以看到日志

3月16日13:29:49 centos-minion kubelet:E0316 13:29:49.126595 53912 event.go:202]无法写事件:'发布http://centos-master:8080/api/v1/namespaces/default/events:拨打tcp 10.143.219.12:8080:i / o timeout'(可能会重试睡觉后)

3月16日13:16:01 centos-minion kube-proxy:E0316 13:16:01.195731 53595 event.go:202]无法写事件:'发布http://localhost:8080/api/v1/namespaces/default/events:拨tcp [:: 1]:8080:getsockopt:连接被拒绝'(可以在睡觉后重试)

以下是master / etc / kubernetes / apiserver上的配置

KUBE_API_ADDRESS="--bind-address=0.0.0.0"
KUBE_API_PORT="--port=8080"
KUBELET_PORT="--kubelet-port=10250"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"

/ etc / kubernetes / config

KUBE_ETCD_SERVERS="--etcd-servers=http://centos-master:2379"
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://centos-master:8080"

在主后续进程正常运行

kube 5657 1 0 Mar15? 00:12:05 / usr / bin / kube-apiserver --logtostderr = true --v = 0 --etcd-servers = http://centos-master:2379 --address = 0.0.0.0 --port = 8080 --kubelet-port = 10250 - -allow-privileged = false --service-cluster-ip-range = 10.254.0.0 / 16

kube 5690 1 1月15日? 00:16:01 / usr / bin / kube-controller-manager --logtostderr = true --v = 0 --master = http://centos-master:8080

kube 5723 1 0 Mar15? 00:02:23 / usr / bin / kube-scheduler --logtostderr = true --v = 0 --master = http://centos-master:8080

所以我仍然不知道缺少什么。

答案

当我按照kubernetes.io上的步骤设置带有fedora的kubernetes时,我遇到了同样的问题。在本教程中,它在节点的/ etc / kubernetes / kubelet中注释掉KUBELET_ARGS =“ - cgroup-driver = systemd”,如果取消注释,您将看到节点状态已准备就绪。希望这有帮助

另一答案

将工作节点重新加入主节点。

我的安装在三台物理机器上。一个主人和两个工人。所有需要重新启动。

您将需要您可能没有的加入令牌:

sudo kubeadm token list

复制TOKEN字段数据,输出看起来像这样(不,那不是我真实的):

TOKEN ow3v08ddddgmgzfkdkdkd7 18h 2018-07-30T12:39:53-05:00认证,签名'kubeadm init'生成的默认引导令牌。系统:bootstrappers:kubeadm:默认节点令牌

然后在这里加入集群。主节点IP是您机器的真实IP地址:

sudo kubeadm join --token <YOUR TOKEN HASH> <MASTER_NODE_IP>:6443 --discovery-token-unsafe-skip-ca-verification
另一答案

如果是新安装,我通过使用以下步骤诊断并修复了同样的问题。

  1. 尝试以下命令从节点中查找错误。如果找到以下输出,请继续执行以下步骤进行修复。否则,可能还有其他原因。

$ kubectl describe node example.node1.com | grep cni

ready: cni config uninitialized

  1. kubectl apply --filename https://git.io/weave-kube-1.6
  2. kubectl get nodes

请参考修复:https://github.com/kubernetes/kubernetes/issues/48798

另一答案

必须在节点中重新启动kubelet服务(systemctl enable kubelet&systemctl restart kubelet)。然后,您可以看到您的节点处于“就绪”状态。

以上是关于“kubectl get nodes”在提供适当的IP后甚至会显示NotReady的主要内容,如果未能解决你的问题,请参考以下文章

K8S kubeadm 部署出现的故障:kubectl get nodes 节点显示 NotReady

K8S kubeadm 部署出现的故障:kubectl get nodes 节点显示 NotReady

k8s单节点部署报错:[root@master ~]# kubectl get nodes No resources found.

k8s单节点部署报错:[root@master ~]# kubectl get nodes No resources found.

k8s单节点部署报错:[root@master ~]# kubectl get nodes No resources found.

自定义变量使用