Rancher Server 设置
- Rancher 版本:v2.7.5
- 安装选项 (Docker install/Helm Chart): Docker install
- 如果是 Helm Chart 安装,需要提供 Local 集群的类型(RKE1, RKE2, k3s, EKS, 等)和版本:
- 在线或离线部署:在线
下游集群信息
- Kubernetes 版本: v1.26.8+rke2r1
- Cluster Type (Local/Downstream):
- 如果 Downstream,是什么类型的集群?(自定义/导入或为托管 等):
用户信息
- 登录用户的角色是什么? (管理员/集群所有者/集群成员/项目所有者/项目成员/自定义):管理员
- 如果自定义,自定义权限集:
主机操作系统:
Ubuntu 22.04.2 LTS
问题描述:
rancher2.7.5是使用docker-compose方式部署的,docker-compose.yml文件内容如下:
version: ‘3’
services:
rancher:
restart: unless-stopped
privileged: true
image: rancher/rancher:v2.7.5
container_name: rancher
volumes:
- /data/rancher:/var/lib/rancher
environment:
- TZ=Asia/Shanghai
- CATTLE_SYSTEM_DEFAULT_REGISTRY=registry.cn-hangzhou.aliyuncs.com
- CATTLE_BOOTSTRAP_PASSWORD=rancher123
ports:
- 8088:80
- 9443:443
local集群信息:v1.26.4+k3s1
下游集群是用rancher创建的,版本为:v1.26.8+rke2r1
测试环境有部署相同配置的rancher,之前本来想测试rancher web端的手动证书轮换,但是当证书快过期的前几天准备测试时,却发现证书自动延长了1年,就没进行后续的测试了,此为前情
最近生产环境相同配置的rancher web端的证书要到期了,考虑到不确定这次会不会像之前那样证书自动延长1年,就想着在测试环境提前进行手动证书轮换的验证,但是在测试的过程中发现了些奇怪的现象,比较疑惑,所以想请教一下
测试步骤:
1.进入容器后使用 k3s certificate rotate 命令进行证书轮换,得到以下输出:
INFO[0000] Server detected, rotating server certificates
INFO[0000] Rotating certificates for admin service
INFO[0000] Rotating certificates for etcd service
INFO[0000] Rotating certificates for api-server service
INFO[0000] Rotating certificates for controller-manager service
INFO[0000] Rotating certificates for cloud-controller service
INFO[0000] Rotating certificates for scheduler service
INFO[0000] Rotating certificates for k3s-server service
INFO[0000] Rotating dynamic listener certificate
INFO[0000] Rotating certificates for k3s-controller service
INFO[0000] Rotating certificates for auth-proxy service
INFO[0000] Rotating certificates for kubelet service
INFO[0000] Rotating certificates for kube-proxy service
INFO[0000] Successfully backed up certificates for all services to path /var/lib/rancher/k3s/server/tls-1746673047, please restart k3s server or agent to rotate certificates
2.退出容器并使用 docker-compose restart rancher 命令重启rancher容器,发现rancher的web证书并没有像预期的那样延长1年,于是又尝试使用docker-compose down和docker-compose up -d 命令进行容器的重建,发现rancher的web证书依旧没有延长
3.进入容器中执行:
kubectl --insecure-skip-tls-verify -n kube-system delete secrets k3s-serving
kubectl --insecure-skip-tls-verify delete secret serving-cert -n cattle-system
rm -f /var/lib/rancher/k3s/server/tls/dynamic-cert.json
curl --insecure -sfL https://192.168.30.100:9443/v3
然后退出并重启rancher容器后,发现rancher的web证书确实延长了,但是重新进入容器后我发现了一个问题:
执行kubectl get secret -n kube-system 命令后发现k3s-serving的secret并没有重新生成,而是直接返回:No resources found in kube-system namespace.
这样岂不是再下一年需要轮换web端证书的时候,就无法使用上面的这个方法进行操作了?
所以想请教以下几个问题:
1.rancher2.7.5是否会在web端证书快到期的时候自动延长1年,如果是的话,会在证书到期前几天开始自动延长呢?(之前测试环境确实是自动延长了,但是生产环境还有不到20天就到期了,还没有自动延长,所以比较担心)
2.使用第三步测试步骤,通过删除k3s-serving和serving-cert的secret的方法进行证书轮换后,k3s-serving的secret没有重新生成,那么再下一年该如何轮换rancher的web证书呢?
重现步骤:
结果:
预期结果:
截图:
其他上下文信息:
日志