[教训] kubeadm 创建 k8s 集群证书过期,环境部分挂掉

2020-07-10 21:53:25 +08:00
 lostsquirrelX

kubeadm 创建 k8s 集群证书过期

  1. 更新证书

    kubeadm alpha certs renew all
    
  2. 更新 kubeadm (因为 apt 源的因素,本文更新到 v1.17.3 最低可用版本未验证)

    apt update
    apt install kubeadm
    
  3. 更新配置文件中的证书

    kubeadm alpha certs renew admin.conf
    kubeadm alpha certs renew controller-manager.conf
    kubeadm alpha certs renew scheduler.conf
    
  4. 查看证书有效期, 确保全部更新

    kubeadm alpha certs check-expiration
    
  5. 生成临时 token (需要 api-server 正常运行)

    注意: 在完成之前步骤中,经过不少尝试配置,因此可能会存在遗漏的配置

    kubeadm token create $(kubeadm token generate)
    
  6. 更新所有节点 bootstrap-kubelet.conf, 删除失效的 kubelet.conf, 并重启节点上的 kubelet

    将前一步生成的 token 替换 bootstrap-kubelet.conf 中的 token 多节点建议用自动化工具(编者使用 ansible)

    - name: update kubelet bootstrap token
      replace:
        path: /var/lib/kubelet/kubeadm-flags.env
        regexp: 'old.token'
        replace: 'new.token'
    
    - name: remove the old  kubelet.conf
      file:
        path: /etc/kubernetes/kubelet.conf
        state: absent
    
    - name: reload service kubelet, in all cases
      systemd:
        name: kubelet
        state: restarted
    
  7. 更新 kubectl 配置

    cp /etc/kubernetes/admin.conf ~/.kube/config
    
  8. 验证集群是否恢复正常

2463 次点击
所在节点    Kubernetes
2 条回复
kennylam777
2020-07-10 22:10:38 +08:00
都用上了 Ansible, 不如考慮 kubespray?
0312birdzhang
2020-07-10 23:37:49 +08:00
记得 kubeadm 可以更新集群的证书啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/689034

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX