TOS warpdrive ca 及相关证书续签

目录

1. 背景

1.1 背景

1.2 影响版本

2. 续签 tranwarp-warpdrive-ca 证书

2.1 备份节点上原有证书目录

2.2 续签 transwarp-warpdrive-ca.pem

2.4 拷贝新的 ca 证书

3. 续签其他证书

3.1 依赖 transwarp-warpdrive-ca.pem 相关证书

3.1.1 transwarp-warpdrive 证书

4. 重启服务

4.1 重启 warpdrive 服务

4.2 重启 kubelet 服务

4.3 重启 controller-manager


1. 背景

transwarp-warpdrive 证书每个节点只需要填写自己节点的 hostname,所以集群有多少节点,transwarp-warpdrive 证书就需要生成多少次。

1.1 背景

tos 1.9.x 2.0.x 2.1.x(2.1.x 版本 2020/12 之后部署的在安装包里面已经更新,不需要再次更新)环境上 ca 系统证书都即将到期,etcd-ca.pem 及 transwarp-warpdrive-ca.pem 将于 2023 年到期,ca.pem 将于 2025 年到期,可以进入到 /srv/kubernetes/ (tdc环境)目录下,使用下面命令查看过期时间:

# openssl x509 -text -in ca.pem | grep "Not"

            Not Before: Dec 10 05:07:35 2015 GMT

            Not After : Dec  7 05:07:35 2025 GMT

# openssl x509 -text -in etcd-ca.pem | grep "Not"

            Not Before: Mar 11 10:30:00 2018 GMT

            Not After : Mar 10 10:30:00 2023 GMT

# openssl x509 -text -in transwarp-warpdrive-ca.pem | grep "Not"

            Not Before: Aug 14 09:05:00 2018 GMT

            Not After : Aug 13 09:05:00 2023 GMT

另外依赖于上述 ca 证书的其他证书也都在对应时间到期,针对这种情况,本文主要讲解 etcd-ca 及依赖证书的续期。其他ca证书的续签后续会更新,具体的操作步骤如下:

  1. 续签CA证书
  2. 续签CA证书签发的所有证书
  3. 更新secret token
  4. 保证CA续签完成后,业务重启正常运行

1.2 影响版本

TDC:

  • 1.9.x <= tos <= 2.0.x

TDH 没有使用 warpdrive 组件,不受影响

2. 续签 tranwarp-warpdrive-ca 证书

续签 ca 证书需要对应的 ca-key 文件,默认环境部署完成 etcd-ca.key 及 transwarp-warpdrive-ca-key.pem 会不存在,需要从安装包拷贝 gencerts 目录,没有安装包的可以从本文最后下载,上传到第一台 master 节点上,后续续签及生成证书的操作默认都在第一台 master 节点。

gencerts 目录见,直接解压即可(tar -zxvf gencerts.tar.gz):gencerts.tar.gz

arm64 环境 安装包见:ftp://tosftp.transwarp.io/pub/tools/arm64/gencerts-arm64.tar.gz

2.1 备份节点上原有证书目录

集群的所有节点都可以备份下证书目录

# cp -r /srv/kubernetes /srv/kubernetes-20221116

2.2 续签 transwarp-warpdrive-ca.pem

# cd market-web-installer/ansible-deploy/util/gencerts

# openssl x509 -in transwarp-warpdrive-ca.pem -days 36500 -out transwarp-warpdrive-ca-new.pem -signkey transwarp-warpdrive-ca-key.pem     ## 依赖于原 transwarp-warpdrive-ca.pem 和 transwarp-warpdrive-ca-key.pem 生成 transwarp-warpdrive-ca-new.pem

Getting Private key

# openssl x509 -text -in transwarp-warpdrive-ca-new.pem | grep "Not"      ## 查看新 transwarp-warpdrive-ca 证书过期时间

            Not Before: Nov 16 07:29:44 2022 GMT

            Not After : Oct 23 07:29:44 2122 GMT

# openssl verify -CAfile transwarp-warpdrive-ca-new.pem /srv/kubernetes/transwarp-warpdrive-crt.pem   ## 使用任一个依赖于 transwarp-warpdrive-ca.pem 生成的证书进行证书比对,这边使用的是 transwarp-warpdrive-crt.pem

/srv/kubernetes/transwarp-warpdrive-crt.pem: OK

到此 transwarp-warpdrive-ca.pem 证书续期完毕,此时依赖于 transwarp-warpdrive-ca.pem 的其他证书(transwarp-warpdrive-crt.pem)的有效期即为使用 openssl 命令查看的有效期。

2.4 拷贝新的 ca 证书

新生成的 transwarp-warpdrive-ca.pem 需要拷贝到集群所有节点的 /srv/kubernetes/ 目录下。

# cd market-web-installer/ansible-deploy/util/gencerts

# cp transwarp-warpdrive-ca-new.pem /srv/kubernetes/transwarp-warpdrive-ca.pem

# cd /srv/kubernetes     ## 拷贝 transwarp-warpdrive-ca.pem 到集群所有节点的 /srv/kubernetes/ 目录下

# scp transwarp-warpdrive-ca.pem tos156:/srv/kubernetes/

# scp transwarp-warpdrive-ca.pem tos157:/srv/kubernetes/

3. 续签其他证书

续签证书也依赖于 gencerts 目录,下面有相关的 config 文件及 cfssl 工具,安装包下有这个目录,没有安装包的可以从本文最后下载,上传到第一台 master 节点上,后续续签及生成证书的操作默认都在第一台 master 节点。

3.1 依赖 transwarp-warpdrive-ca.pem 相关证书

目前只有 transwarp-warpdrive 证书依赖于 transwarp-warpdrive-ca.pem,所以 transwarp-warpdrive-ca.pem 证书更新,我们只需重新生成 transwarp-warpdrive 相关证书就可以了。在生成 transwarp-warpdrive 证书之前,首先确认下 config.json 文件,expiry 为 876000h,表示过期时间为 100 年,不是 876000h 记得修改下。

3.1.1 transwarp-warpdrive 证书

transwarp-warpdrive 证书每个节点只需要填写自己节点的 hostname,所以集群有多少节点,transwarp-warpdrive 证书就需要生成多少次。

# cd market-web-installer/ansible-deploy/util/gencerts

# ./cfssl gencert -ca=/srv/kubernetes/transwarp-warpdrive-ca.pem -ca-key=transwarp-warpdrive-ca-key.pem -config=config.json -profile=warpdrive -hostname=127.0.0.1,0.0.0.0,tos155 transwarp-warpdrive-csr.json | ./cfssljson -bare transwarp-warpdrive  ## hostname 根据情况自行修改,生成 transwarp-warpdrive.pem transwarp-warpdrive-key.pem transwarp-warpdrive.csr

# mv transwarp-warpdrive.pem transwarp-warpdrive-crt.pem

# openssl x509 -text -in transwarp-warpdrive-crt.pem | grep Not

            Not Before: Feb  8 02:54:00 2023 GMT

            Not After : Feb  5 02:54:00 2133 GMT

  

# cp transwarp-warpdrive-crt.pem transwarp-warpdrive-key.pem /srv/kubernetes/    ## tos155节点是本机,拷贝新生成的证书覆盖掉原来旧的

# ./cfssl gencert -ca=/srv/kubernetes/transwarp-warpdrive-ca.pem -ca-key=transwarp-warpdrive-ca-key.pem -config=config.json -profile=warpdrive -hostname=127.0.0.1,0.0.0.0,tos156 transwarp-warpdrive-csr.json | ./cfssljson -bare transwarp-warpdrive  ## hostname 根据情况自行修改,生成 transwarp-warpdrive.pem transwarp-warpdrive-key.pem transwarp-warpdrive.csr

# mv transwarp-warpdrive.pem transwarp-warpdrive-crt.pem

# scp transwarp-warpdrive-crt.pem transwarp-warpdrive-key.pem tos156:/srv/kubernetes/   #在第一个节点生成相关证书,然后拷贝到其他节点

# ./cfssl gencert -ca=/srv/kubernetes/transwarp-warpdrive-ca.pem -ca-key=transwarp-warpdrive-ca-key.pem -config=config.json -profile=warpdrive -hostname=127.0.0.1,0.0.0.0,tos157 transwarp-warpdrive-csr.json | ./cfssljson -bare transwarp-warpdrive  ## hostname 根据情况自行修改,生成 transwarp-warpdrive.pem transwarp-warpdrive-key.pem transwarp-warpdrive.csr

# mv transwarp-warpdrive.pem transwarp-warpdrive-crt.pem

# scp transwarp-warpdrive-crt.pem transwarp-warpdrive-key.pem tos157:/srv/kubernetes/   #在第一个节点生成相关证书,然后拷贝到其他节点

4. 重启服务

4.1 重启 warpdrive 服务

所有节点都要操作

# systemctl restart warpdrive

4.2 重启 kubelet 服务

# systemctl restart kubelet

4.3 重启 controller-manager

3 台 master 节点依次操作

# docker ps | grep controller-manager

c0699744f40b        a216e801e5bd                                 "sh -c 'kube-control…"    27 hours ago        Up 27 hours                             k8s_controller-manager_k8s-controller-manager-tos155_kube-system_625d6c6e994d5db32e10e7d092b3fa22_0

58a25697bddf        google_containers/pause:3.0                  "/pause"                  27 hours ago        Up 27 hours                             k8s_POD_k8s-controller-manager-tos155_kube-system_625d6c6e994d5db32e10e7d092b3fa22_0

# cd /opt/kubernetes/manifests-multi/

# mv kube-controller-manager.manifest ../

# docker ps | grep controller-manager   ## 确认container 不存在后,等待30s,继续后面步骤

# mv ../kube-controller-manager.manifest .

# docker ps | grep controller-manager   ## 确保 container 正常运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值