希望有人可以提供帮助。 我有一个运行Kubernetes的3x节点CoreOS集群。节点如下: 192.168.1.201 - 控制器 192.168.1.202 - 工作节点 192.168.1.203 - 工作节点
群集已启动并正在运行,我可以运行以下命令:
> kubectl get nodes
NAME STATUS AGE
192.168.1.201 Ready,SchedulingDisabled 1d
192.168.1.202 Ready 21h
192.168.1.203 Ready 21h
> kubectl get pods --namespace=kube-system
NAME READY STATUS RESTARTS AGE
kube-apiserver-192.168.1.201 1/1 Running 2 1d
kube-controller-manager-192.168.1.201 1/1 Running 4 1d
kube-dns-v20-h4w7m 2/3 CrashLoopBackOff 15 23m
kube-proxy-192.168.1.201 1/1 Running 2 1d
kube-proxy-192.168.1.202 1/1 Running 1 21h
kube-proxy-192.168.1.203 1/1 Running 1 21h
kube-scheduler-192.168.1.201 1/1 Running 4 1d
如您所见,kube-dns服务未正确运行。它不断重启,我正在努力理解为什么。任何有关调试的帮助都会非常感激(或者在哪里阅读有关调试的信息。运行kubectl日志不能带回任何东西......不确定插件的功能是否与标准pod不同。
运行kubectl描述pods,我可以看到容器因不健康而被杀死:
16m 16m 1 {kubelet 192.168.1.203} spec.containers{kubedns} Normal Created Created container with docker id 189afaa1eb0d; Security:[seccomp=unconfined]
16m 16m 1 {kubelet 192.168.1.203} spec.containers{kubedns} Normal Started Started container with docker id 189afaa1eb0d
14m 14m 1 {kubelet 192.168.1.203} spec.containers{kubedns} Normal Killing Killing container with docker id 189afaa1eb0d: pod "kube-dns-v20-h4w7m_kube-system(3a545c95-ea19-11e6-aa7c-52540021bfab)" container "kubedns" is unhealthy, it will be killed and re-created
请在此处找到此命令的完整输出:https://gist.github.com/mehstg/0b8016f5398a8781c3ade8cf49c02680
提前致谢!
答案 0 :(得分:1)
如果您使用kubeadm安装了群集,则应在安装后添加pod网络。
如果您选择法兰绒作为您的pod网络,您应该在init命令kubeadm init --pod-network-cidr 10.244.0.0/16
中使用此参数。
法兰绒YAML文件可在coreOS flannel repo中找到。
如果您的群集已正确初始化(上面已阅读),您需要做的就是运行kubectl create -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
一旦启动并运行(它将在每个节点上创建pod),您的kube-dns pod就会出现。
如果您需要重置安装(例如将参数添加到kubeadm init
),则可以在所有节点上使用kubeadm reset
。
通常,您将在主服务器上运行init命令,然后添加一个pod网络,然后添加其他节点。
有关pod网络的Getting started guide,第3/4步中对此进行了更详细的描述。
答案 1 :(得分:0)
正如你的要点所说,您的pod网络似乎已被打破。您正在使用10.10.10.X的一些自定义podnetwork。您应该将此IP传递给所有组件。
请检查,与其他现有网络没有冲突。
我建议您使用Calico进行设置,因为这是我提升CoreOS k8s工作的解决方案
答案 2 :(得分:0)
在使用法兰绒网络官方kubeadm文档中的步骤之后,我遇到了类似的问题
http://janetkuo.github.io/docs/getting-started-guides/kubeadm/
当网络容器陷入错误状态时会出现:
kube-dns-xxxxxxxx-xxxvn(rpc错误)
kube-flannel-ds-xxxxx(CrashLoopBackOff)
kube-flannel-ds-xxxxx(CrashLoopBackOff)
kube-flannel-ds-xxxxx(CrashLoopBackOff)
在我的情况下,它与rbac权限错误有关,并通过运行
解决kubectl create -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel-rbac.yml
之后,所有kube-system pod都进入了运行状态。上游问题在github https://github.com/kubernetes/kubernetes/issues/44029
上讨论