[英]kubelet won't start after kuberntes/manifest update
这是我们 K8 集群中的一种奇怪行为。
当我们尝试部署应用程序的新版本时,我们会得到
无法创建 pod 沙箱:rpc 错误:代码 = 未知 desc = 无法为 pod“application-6647b7cbdb-4tp2v”设置沙箱容器“”网络:networkPlugin cni 无法设置 pod“application-6647b7cbdb-4tp2v_default”网络:获取“https://[10.233.0.1]:443/api/v1/namespaces/default”:拨号 tcp 10.233.0.1:443:连接:连接被拒绝
我用kubectl get cs
,发现controller
和scheduler
的Unhealthy
状态。
作为这里的描述/etc/kubernetes/manifests/kube-scheduler.yaml
,通过评论--port=0
更新了/etc/kubernetes/manifests/kube-scheduler.yaml
和/etc/kubernetes/manifests/kube-controller-manager.yaml
当我检查systemctl status kubelet
它正在工作。
Active:自 2020-10-26 13:18:46 +0530 起处于活动状态(正在运行); 1 年 0 个月前
我重新启动了 kubelet 服务, controller
和scheduler
显示健康。
但是systemctl status kubelet
显示(重启 kubelet 后不久它显示运行状态)
活动:自 2021 年 11 月 11 日星期四 10:50:49 +0530 起激活(自动重启)(结果:退出代码); 3 秒前
文档: https : //github.com/GoogleCloudPlatform/kubernetes
进程:21234 ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET
尝试将Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true --fail-swap-on=false"
到/etc/systemd/system/kubelet.service.d/10-kubeadm.conf
描述这里,但它仍然无法正常工作。
还删除了上述清单中的--port=0
注释并尝试重新启动,结果仍然相同。
编辑:此问题是由于kubelet
证书已过期并按照以下步骤修复。 如果有人遇到这个问题,请确保/var/lib/kubelet/pki/kubelet-client-current.pem
证书和密钥值在放置在/etc/kubernetes/kubelet.conf
上时是 base64 编码的
许多其他人再次建议kubeadm init
。 但是这个集群是使用kubespray
创建的,没有手动添加节点。
我们在 Ubuntu 18.04 上运行了裸机 k8。 K8:v1.18.8
我们想知道任何调试和修复建议。
附注:
当我们尝试从任何节点telnet 10.233.0.1 443
,第一次尝试失败,第二次尝试成功。
编辑:在kubelet
服务日志中找到了这个
Nov 10 17:35:05 node1 kubelet[1951]: W1110 17:35:05.380982 1951 docker_sandbox.go:402] 无法从插件/docker 读取 pod IP:networkPlugin cni 在 pod“app-7ddb454”的状态挂钩上失败bzjd9_default": 意外的命令输出 nsenter: 无法打开 /proc/12311/ns/net: 没有那个文件或目录
发表评论作为社区 wiki 答案以获得更好的可见性
此问题是由于kubelet
证书已过期并按照以下步骤修复。 如果有人遇到这个问题,请确保/var/lib/kubelet/pki/kubelet-client-current.pem
证书和密钥值在放置在/etc/kubernetes/kubelet.conf
上时是base64
编码的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.