kubernetes配置私有仓库证书
目录
公司内部有个Kubernetes集群,镜像服务使用私有化部署的Harbor,突然一天发现域名没有续费… 接下来面临的问题就是TLS证书过期无法通过权威CA证书机构签发新证书,但如果更换域名CI/CD、K8s workload 都需要修改,修改量比较大。有没有简单处理方案呢,当然有,改由本地DNS解析域名,自己签发证书。下面的内容就是操作步骤,相对还算是简单的。
一、 OpenSSL 生成证书
- 生成根证书
1 | # 创建 CA 目录 |
- 签发客户端证书
1 | # 参考如下配置修改 ~/ssl/openssl.cnf |
1 | cd example |
二、 部署证书
- 替换Harbor证书
1
2
3
4
5
6
7# docker-compose安装方式
mv ~/ssl/example/registry.example.com.key /opt/harbor/common/config/nginx/cert/
mv ~/ssl/example/registry.example.com.cert /opt/harbor/common/config/nginx/cert/
# 其他安装方式道理一样
# 重启harbor
docker-compose restart registry
三、 客户端安装CA证书
Kubernetes Node信任证书
可以直接将ca.crt复制到所有节点的 /etc/docker/certs.d/registry.example.com/ 目录下也可使用Kubernetes的DaemonSet 自动部署到所有节点上 参考脚本 Daemonset
为了能直接访问registry.example.com ca.crt 添加到本地系统信任
