部署Kubernetes遇到的问题与解决方法(初始化等)
Kubelet和control plane版本不对应:
[ERROR KubeletVersion]: the kubelet version is higher than the control plane version. This is not a supported version skew and may lead to a malfunctional cluster. Kubelet version: "1.19.4" Control plane version: "1.18.6"
#卸载重装对应的低版本 yum -y remove kubelet yum -y install kubelet-1.18.6 kubeadm-1.18.6
master节点初始化之后执行 kubectl cluster-info 显示Unable to connect to the server:
Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes")
原因:
Kebeadm init之后不删除元来文件并又新生成$HOME/.kube,重复了。要删干净文件后重新初始化。解决:
#master节点执行: rm -rf $HOME/.kube #删掉所有文件 #重新执行生成文档: mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config kubectl cluster-info
master节点:执行 kubectl get cs 显示unhealthy。变成healthy
步骤:
kubectl get cs
解决:
1 2 3 4 5 | #改配置文件 #Master节点修改: #vi /etc/kubernetes/manifests/kube-controller-manager.yaml /etc/kubernetes/manifests/kube-scheduler.yaml #两个文件都注释掉--port=0这个设置 |
worker节点:The connection to the server localhost:8080 was refused - did you specify the right host or port?
1 2 3 | [root@localhost kubelet.service.d]# kubectl get nodes W1116 20:29:22.881159 20594 loader.go:223] Config not found: /etc/kubernetes/admin.conf The connection to the server localhost:8080 was refused - did you specify the right host or port? |
解决:
1 | #Master节点执行:<br>scp /etc/kubernetes/admin.conf root@10.0.52.98:/etc/kubernetes/admin.conf<br>#Node节点执行:<br>echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile<br>source ~/.bash_profile |
worker节点:不显示节点名称;两个节点名称一样只显示一个
解决:
1 2 | hostnamectl set -hostname node2 hostname |
重置kubeadm初始化/配置
1 2 3 4 | Kubeadm reset rm -rf / var /lib/cni/ / var /lib/etcd/ rm -rf / var /lib/kubelet /etc/kubernetes/ 重新kubeadm init 和kubeadm join |
worker节点执行 kubectl get nodes显示Not ready。变成ready:解决:
1 2 3 4 5 | #Master和worker节点执行: vi / var /lib/kubelet/kubeadm-flags.env:将“--network-plugin=cni”删掉 #重启: systemctl daemon-reload systemctl restart kubelet |
kubeadm init初始化报错,无法拉取镜像:[ERROR ImagePull]: failed to pull image registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0
解决:
1 2 3 | docker pull registry.aliyuncs.com/google_containers/coredns:1.8.0 docker tag registry.aliyuncs.com/google_containers/coredns:v1.8.0 registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0 docker rmi registry.aliyuncs.com/google_containers/coredns:1.8.0 |
原文链接:http://www.shanhubei.com/archives/2596.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)