我正在尝试为具有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上)放置,以便可以在群集上运行以创建网络。
答案 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
摆脱此问题的步骤:
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是分配给Pods的专用子网)