kubeadm部署k8s集群问题汇总
集群部署过程中未使用负载的apiserver地址背景在使用kubeadm进行集群初始化过程中,本应该使用域名地址(域名方式负载多个apiserver服务),但是使用了单个节点的IP。使得后期该节点当即后,集群异常。处理办法首先集群使用上暂时没有问题(不严谨),但是kubectl服务无法连接管理集群,以及kubelet无法调度pod部署。由于证书文件是共享的,所以只需要修改kubectl配置文件中a
·
集群部署过程中未使用负载的apiserver地址
背景
在使用kubeadm进行集群初始化过程中,本应该使用域名地址(域名方式负载多个apiserver服务),但是使用了单个节点的IP。使得后期该节点当即后,集群异常。
处理办法
首先集群使用上暂时没有问题(不严谨),但是kubectl服务无法连接管理集群,以及kubelet无法调度pod部署。
由于证书文件是共享的,所以只需要修改kubectl配置文件中apiserver的地址即可通过kubectl服务连接管理集群。
# 修改 $HOME/.kube/config 配置文件中server地址,修改为其他可连接的apiserver地址。
server: https://172.29.203.88:6443
其次修改
重新使用kubeadm对节点进行初始化(为管理节点)
# 这里的apiserverIP替换为其他可用节点的IP
kubeadm join 172.29.203.95:6443 --token oh3sn5.90dl9tbcbdqp1d89 --discovery-token-ca-cert-hash sha256:934412dd3ae81920c372f06047ec2154e87d86c7db7774ed0f23fdb7be8c114a --control-plane --certificate-key 5a68eb9d175722f7d12ce5430d4e75da65b3c4f586a66f555a39ffbce19c3c69 -v=5
# -v=5 显示详细日志信息
出现如下报错:
提示连接地址失败。
# 在其他管理节点对集群的信息进行修改。
kubectl edit cm -n kube-public cluster-info
# server: https://172.29.203.95:6443 修改为可用apiserver地址
然后重新reset后重新执行,发现如下问题
这里可以看出是获取etcd pods信息失败,而且可以看出该信息还是从异常的apiserver获取的(88为异常的节点)。
继续修改集群配置。
# 修改kubeadm的配置文件,
kubectl edit cm -n kube-system kubeadm-config
# 将该地址改为其他正常apiserver的地址
controlPlaneEndpoint: 172.29.203.95:6443
然后继续reset后重新执行join命令,继续发现如下报错。
这里的报错应该是从ectd获取到了所有的节点信息,然后验证节点是否正常。
最后我的解决办法使用通过--skip-phases check-etcd
命令跳过该步骤即可。
更多推荐
已为社区贡献3条内容
所有评论(0)