我正在尝试为具有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上)放置,以便它可以在集群上运行以创建网络。
我在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版本中修复的,因为自升级群集以来,我没有经历过这种情况。
重新启动节点后遇到了以下问题:
[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
摆脱这个问题的步骤:
sudo vi /etc/hostname
sudo vi /etc/hosts
码:
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
码
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分配的私有子网)