1
背景:近期由于公司需要将部署在ucloud上的rancher迁移到阿里云上,所以将部署到阿里云的图中遇到的问题和踩到的坑在这里进行记录

无法删除namespace

在安装新环境的rancher之前,需要将kubernetes集群中cattle-system ns下面的cluster-agent和node-agent干掉,这里我选择直接删除cattle-system这个命名空间

kubectl delete ns cattle-system

然而问题来了,在删除命名空间之后,这个命名空间并没有立刻被删除,而是一直处于Terminating状态,这里我专门写了一篇文章解决这个问题,这里就不再赘述

阿里云证书配置

由于之前使用的ucloud的机器进行测试,使用默认自签名证书并没有使用SSL证书,所以在配置证书这里遇到的许多的问题
首先根据官方文档使用权威CA机构颁发的证书,这里使用的是本公司自己的证书
获取证书方法:

进入证书页面
clipboard.png

点击下载证书,选择nginx证书下载

clipboard.png

之后将下载的证书上传到rancher所在服务器,并配置好数据卷挂载
将下面代码的挂载地址指向证书文件,运行代码

docker run -d --restart=unless-stopped \
  -p 80:80 -p 443:443 \
  -v /root/var/log/auditlog:/var/log/auditlog \
  -e AUDIT_LEVEL=3 \
  -v /etc/your_certificate_directory/fullchain.pem:/etc/rancher/ssl/cert.pem \
  -v /etc/your_certificate_directory/privkey.pem:/etc/rancher/ssl/key.pem \
  rancher/rancher:latest --no-cacerts

之后会自动冲dockerhub上拉取最新的rancher进行进行安装,之后使用命令

docker ps

查看容器是否在运行,如果运行正常,则后端的配置就完成了
划重点:这是是在后端配置了证书,所以在阿里云的配置上要使用四层TCP监听
这个地方可是坑了我许久,我一直在前端配置https七层监听,导致一直无法正常访问,一度已经到了怀疑人生的地步=。=
之后就是简单的阿里云SLB配置四层TCP监听,这里也就不再赘述了

k8s集群导入rancher

前后端都准备就绪,现在就可以访问rancher了,访问rancher根据页面提示进行基本配置,登录后选择添加集群
选择导入现有集群

clipboard.png

为集群创建一个rancher中的名称,然后根据提示将命令拷贝到k8s集群所在宿主机执行即可,注意:这里由于配置了证书,所以选择有证书,不绕过证书的那个命令执行,之后就可看到集群数据导入中
图片描述

等待几秒即可开心的使用rancher了!

鸣谢

感谢RancherLabs的尹学峰老师的指点
rancher官网:https://www.cnrancher.com/


郭西西
60 声望10 粉丝

DevOps 工程师,专注云原生及容器领域