Chinaunix首页 | 论坛 | 博客
  • 博客访问: 437324
  • 博文数量: 58
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 623
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-26 18:48
个人简介

在生存面前,那纯洁的理想,原来是那么脆弱不堪!

文章分类

全部博文(58)

文章存档

2022年(1)

2021年(1)

2019年(3)

2018年(6)

2017年(6)

2016年(14)

2015年(10)

2014年(16)

2013年(1)

我的朋友

分类: 虚拟化

2019-07-12 22:05:09

使用kubeadm安装的k8s集群,自动生成的集群内部认证证书,在一年后过期,所有核心组件无法z正常工作,这里记录一下更新证书方法。
1,备份原有文件:
  1. mv /etc/kubernetes/pki/apiserver.crt /etc/kubernetes/pki/apiserver.crt.old
  2. mv /etc/kubernetes/pki/apiserver.key /etc/kubernetes/pki/apiserver.key.old
  3. mv /etc/kubernetes/pki/apiserver-kubelet-client.crt /etc/kubernetes/pki/apiserver-kubelet-client.crt.old
  4. mv /etc/kubernetes/pki/apiserver-kubelet-client.key /etc/kubernetes/pki/apiserver-kubelet-client.key.old
  5.  #mv /etc/kubernetes/pki/ca.crt /etc/kubernetes/pki/ca.crt.old
  6.  #mv /etc/kubernetes/pki/ca.key /etc/kubernetes/pki/ca.key.old
  7.  #mv /etc/kubernetes/pki/front-proxy-ca.crt /etc/kubernetes/pki/front-proxy-ca.crt.old
  8.  #mv /etc/kubernetes/pki/front-proxy-ca.key /etc/kubernetes/pki/front-proxy-ca.key.old
  9. mv /etc/kubernetes/pki/front-proxy-client.crt /etc/kubernetes/pki/front-proxy-client.crt.old
  10. mv /etc/kubernetes/pki/front-proxy-client.key /etc/kubernetes/pki/front-proxy-client.key.old
  11.  #mv /etc/kubernetes/pki/sa.key /etc/kubernetes/pki/sa.key.old
  12.  #mv /etc/kubernetes/pki/sa.pub /etc/kubernetes/pki/sa.pub.old

2,生产新证书:(kubeadm需要连接google服务器,这里用了pptp拨号才出去)
  1. kubeadm alpha phase certs apiserver --apiserver-advertise-address 192.168.73.131 --apiserver-cert-extra-sans 192.168.73.143 --apiserver-cert-extra-sans 192.168.73.144 --apiserver-cert-extra-sans 192.168.73.145 --apiserver-cert-extra-sans k8s143 --apiserver-cert-extra-sans k8s144 --apiserver-cert-extra-sans k8s145 #143,144,145主机组成管理多活集群,131是浮动地址
  2. kubeadm alpha phase certs apiserver-kubelet-client
  3. kubeadm alpha phase certs front-proxy-client

3,备份旧配置文件:
  1. mv /etc/kubernetes/admin.conf /etc/kubernetes/admin.conf.old
  2. mv /etc/kubernetes/kubelet.conf /etc/kubernetes/kubelet.conf.old
  3. mv /etc/kubernetes/controller-manager.conf /etc/kubernetes/controller-manager.conf.old
  4. mv /etc/kubernetes/scheduler.conf /etc/kubernetes/scheduler.conf.old

4,生成新的配置文件:
  1. kubeadm alpha phase kubeconfig all --apiserver-advertise-address 192.168.73.131

  2. 同步配置文件:
  3. scp admin.conf k8s144:/etc/kubernetes/
    scp controller-manager.conf k8s144:/etc/kubernetes/
    scp kubelet.conf k8s144:/etc/kubernetes/
    scp scheduler.conf k8s144:/etc/kubernetes/


    scp /etc/kubernetes/admin.conf k8s145:/etc/kubernetes/
    scp /etc/kubernetes/controller-manager.conf k8s145:/etc/kubernetes/
    scp /etc/kubernetes/kubelet.conf k8s145:/etc/kubernetes/
    scp /etc/kubernetes/scheduler.conf k8s145:/etc/kubernetes/


    scp /etc/kubernetes/apiserver* k8s144:/etc/kubernetes/
    scp /etc/kubernetes/front-proxy-client.* k8s144:/etc/kubernetes/


    scp /etc/kubernetes/apiserver* k8s145:/etc/kubernetes/
    scp /etc/kubernetes/front-proxy-client.* k8s145:/etc/kubernetes/


5, 重启服务:
在每个管理节点,列出kube-apiserver,kube-controller-manager, kube-scheduler 容器的id;
依次重启;

6,kubelet使用的/var/lib/kubelet/pki/kubelet/目录下的client证书,可以任意删除,启动自动重新获取;

7,更新kubectl 配置文件
  1. cd ~/.kube/
  2. cat /etc/kubernetes/admin.conf > ./config

8,查看集群状态
  1. kubectl get node
  2. kubectl get po --all-namespaces

9,补充:
    /etc/kubernetes/pki/etcd/下的证书,在三个管理节点,内容是不同的;
    9.1 直接更新:kubeadm certs renew etcd-apiserver
kubeadm certs renew etcd-peer
kubeadm certs renew etcd-healthcheck-client
    9.2 如果不小心覆盖掉了,要先删除 通过以下命令重新生成。
rm -rf etcd-peer
rm -rf apiserver*
rm -rf healthcheck-client  
 
kubeadm init phase certs etcd-peer
kubeadm init phase certs etcd-server

kubeadm init phase certs etcd-healthcheck-client 

阅读(4520) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~