Kubeadm证书过期检查实操技术栈Kubernetes v1.32.13 Rocky Linux 8.6 Containerd 1.7.x Calico v3.27.x操作环境 / 对接原理 / 详细步骤 / 完整命令 / 配置文件 / 验证流程 / 排错方案Kubeadm证书过期检查实操操作环境K8s 集群版本 v1.32.13操作系统 Rocky Linux 8.6内核 4.18.0-372.el8容器运行时 Containerd 1.7.13runc 1.1.12CNI 插件 1.4.0网络插件 Calico v3.27.4Pod CIDR 10.244.0.0/16Service CIDR 10.96.0.0/12节点间网络互通关闭 firewalld 或放行所需端口关闭 Swap 分区时间同步通过 chronyd 实现时区 Asia/ShanghaiSEinux 设置为 disabled内核参数 net.bridge.bridge-nf-call-iptables1对接原理Kubeadm 是 K8s 官方集群引导工具负责初始化控制平面APIServer、ControllerManager、Scheduler、etcd并以静态 Pod 形式运行于 /etc/kubernetes/manifests 目录。kubelet 以 systemd 服务运行管理节点 Pod 生命周期。Containerd 作为 CRI 运行时通过 unix socket 与 kubelet 对接。Calico 以 DaemonSet 部署通过 BGP 实现 Pod 跨节点互通通过 iptables/IPVS 实现 Service 负载均衡。详细步骤1. 检查证书有效期kubeadm certs check-expiration # 查看各证书到期时间 openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -dates openssl x509 -in /etc/kubernetes/pki/ca.crt -noout -dates2. 手动轮换所有控制平面证书kubeadm certs renew all # 重启控制平面静态 Pod 使证书生效 crictl pods --name kube-apiserver -q | xargs -r crictl stopp crictl pods --name kube-controller-manager -q | xargs -r crictl stopp crictl pods --name kube-scheduler -q | xargs -r crictl stopp # 更新 admin.conf kubeadm kubeconfig user --client-namekubernetes-admin /etc/kubernetes/admin.conf cp /etc/kubernetes/admin.conf $HOME/.kube/config3. 配置证书自动轮换# kubelet 证书自动轮换默认开启验证配置 cat /var/lib/kubelet/config.yaml | grep rotateCertificates # 查看 kubelet 证书轮换状态 openssl x509 -in /var/lib/kubelet/pki/kubelet.crt -noout -dates验证流程# 1. 节点状态验证 kubectl get nodes -o wide # 所有节点 STATUS 应为 Ready # 2. 控制平面 Pod 验证 kubectl get pods -n kube-system # etcd、kube-apiserver、kube-controller-manager、kube-scheduler 均为 Running # 3. 集群信息验证 kubectl cluster-info # Kubernetes control plane is running at https://apiserver:6443 # 4. 组件版本验证 kubectl version --short # Server Version: v1.32.13 # 5. Pod 网络连通性验证 kubectl run net-test --imagebusybox:1.36 --restartNever -- sleep 3600 kubectl exec net-test -- ping -c 3 10.96.0.10 # 6. DNS 解析验证 kubectl exec net-test -- nslookup kubernetes.default.svc.cluster.local排错方案节点 NotReady查看 kubectl describe node确认 CNI 插件是否就绪检查 calico-node Pod 日志确认 Pod CIDR 与初始化参数一致kubelet 启动失败执行 journalctl -u kubelet -f 查看日志常见原因是 containerd socket 路径不匹配或 cgroup 驱动不一致containerd 需设 SystemdCgrouptrue镜像拉取失败确认 --image-repository 是否指定国内源或手动执行 kubeadm config images pull 预拉取CoreDNS CrashLoopBackOff通常为网络插件未就绪等待 Calico 部署完成后自动恢复检查 iptables 规则APIServer 连接超时检查 6443 端口是否监听防火墙是否放行etcd 是否健康etcdctl endpoint healthetcd 成员异常执行 etcdctl member list 确认成员状态检查数据目录 /var/lib/etcd 空间是否充足证书过期报错执行 kubeadm certs check-expiration 查看到期时间使用 kubeadm certs renew all 轮换后重启控制平面 Pod