Kubernetes-错误上传crisocket:超时等待条件

问题描述 投票:2回答:2

我正在尝试为具有1个主节点和2个工作节点的Kubernetes集群创建模板。我已经安装了所有pre-req软件并在我的主节点上运行了kubeadmn init。但是当我尝试运行kubeadmn join时,我得到的是init命令的输出,我收到了一个错误。

[发现]尝试连接到API服务器“10.31.2.33:6443”[发现]创建了集群信息发现客户端,从“https://10.31.2.33:6443”请求信息[发现]再次从“https://10.31.2.33:6443”请求信息以针对固定的公钥验证TLS [发现]集群信息签名和内容有效,TLS证书验证固定根,将使用API​​服务器“10.31.2.33:6443”[发现]成功建立与API服务器的连接“10.31.2.33:6443”[kubelet]下载配置来自kube-system命名空间中的“kubelet-config-1.12”ConfigMap的kubelet [kubelet]将kubelet配置写入文件“/var/lib/kubelet/config.yaml”[kubelet]使用标志写入文件的kubelet环境文件“/var/lib/kubelet/kubeadm-flags.env”[preflight]激活kubelet服务[tlsbootstrap]等待kubelet执行TLS Bootstrap ... [patchnode]上传CRI套接字信息“/ var / run / dockershim.sock“以节点API对象”“作为annot上传crisocket时出错:等待条件超时

我在workdernode2上运行之前做了一个swapoff -a

我能够运行一次连接,但之后作为脚本的一部分,我运行了kubeadm重置,接着是init并且连接几次,这已经开始显示了。

无法弄清楚我在做什么或哪里犯了错误。

我的主要目的是将所有命令以shell脚本的形式(在masternode上)放置,以便它可以在集群上运行以创建网络。

docker kubernetes cluster-computing
2个回答
0
投票

我在Ubuntu 16.04 amd64上遇到了同样的问题,修复了这些命令:

swapoff -a    # will turn off the swap 
kubeadm reset
systemctl daemon-reload
systemctl restart kubelet
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X  # will reset iptables

另外,在kubeadm GitHub kubeadm swap on the related issue中查看该问题,人们在关闭交换后仍然会报告问题。

您也可以尝试在/ etc / default / kubelet文件中添加--fail-swap-on = false标志,但在我的情况下它并没有帮助。

它似乎是在最新的k8版本中修复的,因为自升级群集以来,我没有经历过这种情况。


0
投票

重新启动节点后遇到了以下问题:

[kubelet] Creating a ConfigMap "kubelet-config-1.13" in namespace kube-system with the configuration for the kubelets in the cluster
[patchnode] Uploading the CRI Socket information "/var/run/dockershim.sock" to the Node API object "k8smaster" as an annotation
[kubelet-check] Initial timeout of 40s passed.
error execution phase upload-config/kubelet: Error writing Crisocket information for the control-plane node: timed out waiting for the condition

摆脱这个问题的步骤:

  1. 再次检查主机名,重启后它可能已更改。

sudo vi /etc/hostname sudo vi /etc/hosts

  1. 执行以下清理操作

码:

sudo kubeadm reset
rm -rf /var/lib/cni/
sudo rm -rf /var/lib/cni/

systemctl daemon-reload

systemctl restart kubelet

sudo iptables -F && sudo iptables -t nat -F && sudo iptables -t mangle -F && sudo iptables -X
  1. 使用特殊标记执行init操作,如下所示

sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=10.10.10.2 --ignore-preflight-errors=all    

(其中10.10.10.2是主节点的IP,192.168.0.0 / 16是为Pod分配的私有子网)

© www.soinside.com 2019 - 2024. All rights reserved.