K3S TLS证书延长
- 新安装集群:
- 根证书延长: 修改脚本: https://github.com/k3s-io/k3s/blob/master/contrib/util/generate-custom-ca-certs.sh 将 3700 改你期望的天数 (根证书) 并执行,如果修改了 DATA_DIR 目录记得加到环境后在执行
- 颁发的子证书延长: 目前官方没有支持相关的配置,但是通过源码可以看到 k3s 调用了 github.com/rancher/dynamiclistener/cert.NewSignedCert 方法并没有传递参数,且在该方法内有一个读取环境变量 CATTLE_NEW_SIGNED_CERT_EXPIRATION_DAYS 作为默认的证书市场的.
- ansible 安装方式: 在 role/k3s_server 写入默认的变量: extra_service_envs: [ 'CATTLE_NEW_SIGNED_CERT_EXPIRATION_DAYS=36500' ] 即可
- k3s-install.sh 脚本: 目前该脚本没有提供读取外部的环境变量的方式. 需要自己进行改造. 这里就不细说.
- 已有集群:
- 往 k3s.service.env 写入 CATTLE_NEW_SIGNED_CERT_EXPIRATION_DAYS=36500 配置
- 通过官网升级指引,配合上述的自定义ca脚本进行升级.(注意指定到别的路径, 不要直接覆盖当前的证书路径)
- 通过该方法对证书进行升级后,即使删除 /etc/rancher/k3s/k3s.yaml 文件重启得到新的集群配置文件也无法通过 kubectl 访问集群. (但是tls证书过期时间、k3s 服务均可以变成期望的)
more crazy more get!