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

sie*_*maa 9 cluster-computing docker kubernetes

我正在尝试为具有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]从kube-system命名空间中的” kubelet-config-1.12“ ConfigMap下载kubelet的配置[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”到节点API对象“”,作为注释错误上传crisocket:等待条件超时

我在workdernode2上运行此命令之前已经完成了swapoff -a

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

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

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

小智 11

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

[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
Run Code Online (Sandbox Code Playgroud)

摆脱这个问题的步骤:

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

    sudo vi /etc/hostname 
    sudo vi /etc/hosts
    
    Run Code Online (Sandbox Code Playgroud)
  2. 执行以下清理操作

    代码:

    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
    
    Run Code Online (Sandbox Code Playgroud)
  3. 执行带有特殊标签的 init 动作,如下所示

    代码:

    sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=10.10.10.2 --ignore-preflight-errors=all    
    
    Run Code Online (Sandbox Code Playgroud)

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


Ale*_*lex 7

我在 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
Run Code Online (Sandbox Code Playgroud)

另外,请查看 kubeadm GitHub kubeadm swap 中有关相关问题的问题,其中人们在关闭 swap 后仍然报告有问题。

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

在最新的k8版本中似乎已经修复了,因为升级集群后,我没有遇到过这个问题。