常见问题:未满足Kubernetes对Debian版本、内核、交换分区等基础要求,导致集群无法初始化或运行不稳定。
解决方法:
sudo swapoff -a临时关闭,编辑/etc/fstab文件删除或注释swap相关行永久生效。sudo apt update && sudo apt upgrade -y更新系统;安装必要工具包sudo apt install -y apt-transport-https curl software-properties-common,为后续添加Kubernetes仓库做准备。常见问题:节点间无法通信、Pod无法调度或访问外部服务,常见表现为kubectl get nodes显示节点状态为NotReady。
解决方法:
ping命令测试节点间IP连通性,确保所有节点能互相访问;配置节点静态IP,避免DHCP导致IP变动。sudo ufw allow <端口>或iptables配置。/etc/hosts文件中添加节点IP与主机名映射(如192.168.1.10 master-node),避免DNS解析失败。常见问题:Kubelet、kube-apiserver、kube-controller-manager等组件版本不一致,导致集群功能异常(如Pod无法创建、调度失败)。
解决方法:
apt-mark hold kubelet kubeadm kubectl锁定版本,避免自动更新破坏兼容性。常见问题:etcd作为Kubernetes数据存储组件,常出现无法启动、数据不一致或集群不健康的问题。
解决方法:
journalctl -u etcd或etcdctl logs命令查看错误信息(如磁盘空间不足、证书过期)。/etc/kubernetes/manifests/etcd.yaml中的initial-cluster(集群节点列表)、initial-cluster-state(集群状态,新建为new、已有为existing)参数配置正确。etcdctl endpoint health检查集群健康状态,etcdctl member list查看集群成员。常见问题:kubelet服务无法启动,或启动后无法连接到kube-apiserver,表现为kubectl get nodes无法获取节点信息。
解决方法:
journalctl -u kubelet查看错误信息(如证书无效、API Server地址错误)。/var/lib/kubelet/config.yaml中的server参数指向正确的API Server地址(如https://<master-ip>:6443),certificate-authority和client-certificate路径正确。sudo systemctl daemon-reload && sudo systemctl restart kubelet重启服务。常见问题:Pod无法拉取指定镜像,表现为ImagePullBackOff(无法找到镜像)或CrashLoopBackOff(容器启动后立即崩溃)。
解决方法:
nginx:1.25)和标签正确,避免拼写错误。docker pull <镜像名称>,测试是否能正常拉取镜像;确保节点能访问Docker Hub或私有仓库。kubectl create secret docker-registry my-secret --docker-server=<仓库地址> --docker-username=<用户名> --docker-password=<密码>,然后在Pod配置中引用imagePullSecrets。常见问题:Pod无法挂载PersistentVolume(PV)或PersistentVolumeClaim(PVC),表现为MountVolume failed(挂载失败)或Volume is not attached(卷未附加)。
解决方法:
local-path、nfs-client)已正确安装,kubectl get storageclass查看状态是否为default。showmount -e <NFS服务器IP>测试NFS共享是否可用)。kubectl describe pod <pod-name>查看挂载失败的详细原因(如路径不存在、权限不足)。常见问题:用户无法执行kubectl命令(如kubectl create deployment),表现为Forbidden(无权限)或Unauthorized(认证失败)。
解决方法:
kubectl get rolebindings,clusterrolebindings)。~/.kube/config文件中的users部分包含正确的证书或Token(可通过kubeadm init生成的admin.conf复制而来)。sudo kubectl <命令>临时提升权限,但建议通过RBAC配置长期权限。