Kubernetes-错误上传小插曲:等待条件超时

时间:2018-11-28 18:35:44

标签: docker kubernetes cluster-computing

我正在尝试为具有1个主节点和2个工作节点的Kubernetes集群创建模板。我已经安装了所有必备软件,并在主节点上运行了kubeadmn init。但是当我尝试运行作为初始化命令输出的kubeadmn连接时,出现了错误。

  

[发现]尝试连接到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-config-1.12” ConfigMap中对kubelet进行配置   在kube-system命名空间中[kubelet]编写kubelet配置   文件“ /var/lib/kubelet/config.yaml” [kubelet]编写kubelet   带有标志的环境文件   “ /var/lib/kubelet/kubeadm-flags.env” [预检]激活   kubelet服务[tlsbootstrap]等待kubelet执行   TLS Bootstrap ... [patchnode]上传CRI套接字信息   将“ /var/run/dockershim.sock”添加到Node API对象“”   注释错误上传crisocket:超时等待   条件

在workdernode2上运行它之前,我已经完成了-a的交换-

我能够运行一次连接,但是在此之后,作为脚本的一部分,我先运行了kubeadmn重置,然后执行了init并加入了几次,直到开始显示。

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

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

2 个答案:

答案 0 :(得分: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版本中修复,因为自升级群集以来,我还没有经历过。

答案 1 :(得分: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. 使用以下特殊标签执行初始化操作

代码

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是分配给Pods的专用子网)