kubernetes集群更新证书(kubeadm方式)

一.kubernets证书详情

1.查看证书

tree /etc/kubernetes/pki/

/etc/kubernetes/pki/
├── apiserver.crt
├── apiserver-etcd-client.crt
├── apiserver-etcd-client.key
├── apiserver.key
├── apiserver-kubelet-client.crt
├── apiserver-kubelet-client.key
├── ca.crt
├── ca.key
├── etcd
│   ├── ca.crt
│   ├── ca.key
│   ├── healthcheck-client.crt
│   ├── healthcheck-client.key
│   ├── peer.crt
│   ├── peer.key
│   ├── server.crt
│   └── server.key
├── front-proxy-ca.crt
├── front-proxy-ca.key
├── front-proxy-client.crt
├── front-proxy-client.key
├── sa.key
└── sa.pub

2.各个证书过期时间

/etc/kubernetes/pki/apiserver.crt                #1年有效期
/etc/kubernetes/pki/front-proxy-ca.crt           #10年有效期
/etc/kubernetes/pki/ca.crt                       #10年有效期
/etc/kubernetes/pki/apiserver-etcd-client.crt    #1年有效期
/etc/kubernetes/pki/front-proxy-client.crt       #1年有效期
/etc/kubernetes/pki/etcd/server.crt              #1年有效期
/etc/kubernetes/pki/etcd/ca.crt                  #10年有效期
/etc/kubernetes/pki/etcd/peer.crt                #1年有效期
/etc/kubernetes/pki/etcd/healthcheck-client.crt  #1年有效期
/etc/kubernetes/pki/apiserver-kubelet-client.crt #1年有效期

3.查看各个证书过期时间

kubeadm alpha certs check-expirations

[root@master01 ~]# kubeadm alpha certs check-expiration
[check-expiration] Reading configuration from the cluster...
[check-expiration] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'

CERTIFICATE                EXPIRES                  RESIDUAL TIME   CERTIFICATE AUTHORITY   EXTERNALLY MANAGED
admin.conf                 Jan 24, 2023 16:12 UTC   275d                                    no      
apiserver                  Jan 24, 2023 16:12 UTC   275d            ca                      no      
apiserver-etcd-client      Jan 24, 2023 16:12 UTC   275d            etcd-ca                 no      
apiserver-kubelet-client   Jan 24, 2023 16:12 UTC   275d            ca                      no      
controller-manager.conf    Jan 24, 2023 16:12 UTC   275d                                    no      
etcd-healthcheck-client    Jan 24, 2023 16:12 UTC   275d            etcd-ca                 no      
etcd-peer                  Jan 24, 2023 16:12 UTC   275d            etcd-ca                 no      
etcd-server                Jan 24, 2023 16:12 UTC   275d            etcd-ca                 no      
front-proxy-client         Jan 24, 2023 16:12 UTC   275d            front-proxy-ca          no      
scheduler.conf             Jan 24, 2023 16:12 UTC   275d                                    no      

CERTIFICATE AUTHORITY   EXPIRES                  RESIDUAL TIME   EXTERNALLY MANAGED
ca                      Apr 14, 2030 02:18 UTC   7y              no      
etcd-ca                 Apr 14, 2030 02:18 UTC   7y              no      
front-proxy-ca          Apr 14, 2030 02:18 UTC   7y              no      

 二.更新证书方法一证书还没有过期的情况

1.导出配置文件(master01)

kubeadm config view > kubeadm-cluster.yaml

2.备份原有证书文件(master01)

cp -rp /etc/kubernetes /etc/kubernetes-$(date +%Y%m%d).bak

3.备份etcd数据目录(master01)

cp -r /var/lib/etcd /var/lib/etcd-$(date +%Y%m%d).bak

4.更新全部证书(master01)

 kubeadm alpha certs renew all --config=/tmp/cluster.yaml

5.确认证书更新(master01)

 kubeadm alpha certs check-expiration

6.更新其他master节点(按照步骤)

scp cluster.yaml root@10.10.20.4:/tmp
cp -rp /etc/kubernetes /etc/kubernetes-$(date +%Y%m%d).bak
cp -r /var/lib/etcd /var/lib/etcd-$(date +%Y%m%d).bak
kubeadm alpha certs renew all --config=/tmp/cluster.yaml
kubeadm alpha certs check-expiration

7.在三台Master上执行重启kube-apiserver、kube-controller、kube-scheduler、etcd这4个容器,以便使证书生效

建议先重启Etcd,再重启kube-apiserver、kube-controller、kube-scheduler

重启Etcd数据库
docker ps |grep -E 'k8s_etcd_etcd' | awk -F ' ' '{print $1}' |xargs docker restart
重启kube-apiserver、kube-controller、kube-scheduler
docker ps |grep -E 'k8s_kube-apiserver|k8s_kube-controller-manager|k8s_kube-scheduler' | awk -F ' ' '{print $1}' |xargs docker restart

更新证书二(证书已经过期)

1.修改系统时间到证书有效期时间内(三个master节点都要操作,确保证书在有效期)

date -s “2022-04-25”

2.备份配置文件

kubeadm config view > /root/kubeadm.yaml

3.备份原有证书

cp -rp /etc/kubernetes /etc/kubernetes-$(date +%Y%m%d).bak

4.备份ETCD数据库

cp -r /var/lib/etcd /var/lib/etcd-$(date +%Y%m%d).bak

5.更新证书

kubeadm alpha certs renew all

6.重启 apiserver、kube-controller、kube-scheduler、etcd 容器

docker ps | grep -v pause | grep -E "etcd|scheduler|controller|apiserver" | awk '{print $1}' | awk '{print "docker","restart",$1}' | bash

7.执行过之后发现etcd容器持续重启,不能正常,重启docker和kubelet

systemctl restart docker && systemctl restart kubelet

8.同步时间

ntpdate ntp1.aliyun.com

9.确认集群状态

kubectl get node 

kubectl get pod -n kube-system

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
使用 kubeadm 工具可以自动化安装和配置 Kubernetes 集群。以下是在单节点 CentOS 7 上使用 kubeadm 安装 Kubernetes 集群的步骤: 1. 安装 Docker:在单节点上安装 Docker,这是 Kubernetes 集群所需的容器运行时。 ``` sudo yum install -y docker sudo systemctl enable docker sudo systemctl start docker ``` 2. 安装 kubeadmkubeadm 是用于安装 Kubernetes 集群的命令行工具。 ``` sudo curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - sudo touch /etc/apt/sources.list.d/kubernetes.list echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list sudo apt-get update sudo apt-get install -y kubeadm ``` 3. 初始化 Kubernetes 集群:使用 kubeadm 工具初始化 Kubernetes 集群,此命令将在单节点上安装 Kubernetes 控制平面组件。 ``` sudo kubeadm init --pod-network-cidr=10.244.0.0/16 ``` 该命令将在单节点上启动 Kubernetes 控制平面组件,并在完成后输出一个 kubeadm join 命令。将此命令保存以便稍后使用。 4. 安装网络插件:安装 CNI 网络插件,以便 Kubernetes 集群中的 Pod 可以相互通信。 ``` sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` 5. 加入节点(可选):如果您想将其他节点添加到 Kubernetes 集群中,请使用之前保存的 kubeadm join 命令。 ``` sudo kubeadm join <control-plane-host>:<control-plane-port> --token <token> --discovery-token-ca-cert-hash <hash> ``` <control-plane-host> 是 Kubernetes 控制平面节点的 IP 地址或主机名,<control-plane-port> 是 Kubernetes API 服务器的端口号,<token> 是用于加入节点的安全令牌,<hash> 是用于加入节点的证书哈希值。 现在,您已经在单节点上成功安装和配置了 Kubernetes 集群。您可以使用 kubectl 命令管理 Kubernetes 集群中的 Pod、服务和其他资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忍冬行者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值