Rancher2.4替换权威证书
简述
一开始安装rancher时使用的是自签名证书,现需要替换成权威证书,方便内部的一些使用和流程
替换如下:
rancher.zerchin.com
(自签名) → rancher.zerchin.xyz
(权威证书)
前提
k8s-v1.17.14
rancher-v2.4.12
架构
Rancher是以7层负载均衡的方式部署在集群中,用户访问rancher地址后,首先解析到nginx负载均衡上,然后在nginx负载均衡上作为ssl终止,最后nginx负载均衡反向代理到后端的rancher server的80端口上。
所以,替换证书的操作,只需要在nginx负载均衡上进行替换即可
步骤
查看当前rancher使用的证书
在浏览器地址栏中可以看到,由于当前的证书是自签名证书,所以显示是不安全的
申请权威证书
这里我是用腾讯云申请的证书(免费为腾讯打了波广告)
证书颁发之后,将证书下载下来,并上传到nginx负载均衡上,并重新命名
1 | # mv 1_rancher.zerchin.xyz_bundle.crt tls_new.crt |
修改nginx配置
默认的配置如下:
其中主要关注这几个信息:
server_name
:证书的签发地址ssl_certificate
:证书存放的地址ssl_certificate_key
:证书的key存放的地址proxy_set_header
:访问后端rancher的地址
修改成:
1 | http { |
修改完后重启nginx
1 | nginx -t |
helm更新rancher配置
rancher部署在后端的k8s上,并通过ingress-nginx暴露出来,由于我们在nginx负载均衡上更改了访问地址,所以需要更新rancher的ingress
获取rancher的chart value
1 | helm get values -n cattle-system rancher |
会输出如下结果:
1 | USER-SUPPLIED VALUES: |
使用helm更新rancher,并填充上一步获取的value,其中将hostname配置成新的访问地址
1 | helm upgrade rancher rancher-stable/rancher -n cattle-system --set hostname=rancher.zerchin.xyz --set privateCA=true --set tls=external --version v2.4.12 |
由于使用了权威证书,所以privateCA这个参数不用加上去,另外version为具体的rancher版本,需要带v
浏览器查看证书
rancher更新完之后,浏览器查看证书是否替换成功
使用新地址去访问
可以看到,已经能够使用新的域名去访问,并且显示的是可以信任的安全连接
修改server_url
登录进去后,我们需要修改server_url地址
在 全局 -> 系统设置 -> 高级设置 中,找到server-url
,并替换成现在新的地址
更新下游k8s集群
之前rancher创建和纳管的k8s集群,还是监听旧的rancher地址,所以我们需要更新下游k8s集群访问rancher的地址
- 打开集群API
- 找到clusterRegistrationTokens,点进去
- 找到id为system,复制insecureCommand后面的命令到k8s集群中执行
- 执行第三步复制的命令
- 所有的集群都需要执行该操作,等待cattle-cluster-agent和cattle-node-agent启动完毕可以了
替换成功