k8s更新证书

root@k8s-master01 \~# sudo kubeadm certs renew all

renew Reading configuration from the cluster...

renew FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'

certificate embedded in the kubeconfig file for the admin to use and for kubeadm itself renewed

certificate for serving the Kubernetes API renewed

certificate the apiserver uses to access etcd renewed

certificate for the API server to connect to kubelet renewed

certificate embedded in the kubeconfig file for the controller manager to use renewed

certificate for liveness probes to healthcheck etcd renewed

certificate for etcd nodes to communicate with each other renewed

certificate for serving etcd renewed

certificate for the front proxy client renewed

certificate embedded in the kubeconfig file for the scheduler manager to use renewed

certificate embedded in the kubeconfig file for the super-admin renewed

Done renewing certificates. You must restart the kube-apiserver, kube-controller-manager, kube-scheduler and etcd, so that they can use the new certificates.

root@k8s-master01 \~#

好的,根据提示,你已经成功更新了证书,接下来你需要重启相关的控制平面组件,以便它们加载并使用新的证书。这些组件通常作为静态 Pod (static pods) 运行在你的主节点上,由 kubelet直接管理。

接下来的操作步骤:

  1. 重启 kubelet 服务:

    在你的主节点 (k8s-master01) 上,执行以下命令来重启 kubelet 服务。重启 kubelet 会使其重新启动由它管理的静态 Pod(包括 kube-apiserver, kube-controller-manager, kube-scheduleretcd)。

    bash 复制代码
    sudo systemctl restart kubelet
    • 如果你有多个主节点 (HA 集群): 你需要在每一个主节点 上都执行 sudo systemctl restart kubelet 命令。
  2. 验证组件是否已重启并正常运行:

    等待一两分钟,让组件有时间重新启动。然后进行检查:

    • 检查静态 Pod 的状态:

      bash 复制代码
      kubectl get pods -n kube-system

      查看 kube-apiserver-k8s-master01, kube-controller-manager-k8s-master01, kube-scheduler-k8s-master01etcd-k8s-master01 (Pod 名称中的主机名部分可能与你的节点名一致) 是否处于 Running 状态,并注意它们的 AGE 是否比较新,表明它们是最近重启的。

    • 检查组件日志 (可选,用于排错):

      如果某个 Pod 没有正常启动,你可以查看它的日志:

      bash 复制代码
      kubectl logs <pod-name> -n kube-system
      # 例如:
      # kubectl logs kube-apiserver-k8s-master01 -n kube-system
    • 检查集群状态:

      bash 复制代码
      kubectl cluster-info
      kubectl get nodes

      确保集群API可访问,节点状态正常。

    • (重要) 再次检查证书过期时间:

      如果之前使用了 kubeadm certs check-expiration,可以再次运行它来确认新的证书生效并且过期时间已更新:

      bash 复制代码
      sudo kubeadm certs check-expiration
  3. 更新你的 kubectl 配置文件 (如果需要):

    证书更新过程通常也会更新 /etc/kubernetes/admin.conf 文件。为了让你本地的 kubectl 能够使用新的凭证与集群通信,你需要将更新后的 admin.conf 复制到你的 ~/.kube/config

    bash 复制代码
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config

    执行完这个操作后,你可能需要退出当前 shell 会话再重新登录,或者新开一个终端,以确保新的 kubectl 配置生效。

总结一下关键步骤:

  • 在所有主节点上:sudo systemctl restart kubelet
  • 等待片刻,然后使用 kubectl get pods -n kube-systemsudo kubeadm certs check-expiration 进行验证。
  • 更新你本地的 ~/.kube/config

操作时请务必小心,尤其是在生产环境中。如果在重启过程中遇到问题,请检查相关组件的日志以获取更详细的错误信息。

相关推荐
我有2只猫19 分钟前
vLLM Docker 本地部署小模型
docker·容器·vllm
腾讯数据架构师1 小时前
壁仞 GPU 怎么接入 Kubernetes 和 AI 平台?CubeStudio 壁仞算力适配实操
人工智能·容器·kubernetes·cube-studio·ai平台
有脚就行1 小时前
第28篇-Kubernetes-GPU调度机制-Device-Plugin与GPU-Operator
人工智能·容器
键盘鼓手苏苏3 小时前
AI 内容生成管线设计:从多模态编排到质量守门的生产级架构
云原生·kubernetes·k8
huaiixinsi4 小时前
Docker 负责打包,Kubernetes 负责调度:一文吃透容器化与 K8s 编排
docker·容器·kubernetes
Henry-SAP5 小时前
具身智能新突破:开源生态与IPO热潮
人工智能·云原生·sap·erp
风翼靓崽5 小时前
记一次使用snap 安装dive后,docker镜像和容器都看不到
运维·docker·容器
嘟嘟07176 小时前
从浏览器到 hello world:Docker + nginx 反向代理 + Node 最小服务器一次讲清
docker·容器·node.js
小月土星6 小时前
当 LLM 遇上集装箱:我的 Docker 学习笔记与 AI 后端的思考(含反向代理Nginx)
后端·docker·容器
Kismet_nvi6 小时前
Kubernetes 核心模块详细总结
云原生·容器·kubernetes