集群化安装 Rancher 是生产环境最佳的安装方式,规避了 Docker 部署的单节点冗余性差的问题,同时也集成了负载均衡等功能。
安装 Helm Chart
本文以 RKE2 为基础环境,并且安装了 Helm 仓库管理。
添加 Helm 仓库
除极少数的需求外,都推荐使用 stable
稳定版,测试版本可以换成 alpha
,新特性版可以换成 latest
分支
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
创建 Rancher 命名空间
为了便于使用,规定 cattle-system
为 Rancher 部署的命令空间,使用命名进行创建。
kubectl create namespace cattle-system
选择 SSL 方式
Rancher 管理服务被设计为默认使用 SSL 进行保护,因此需要为其配置证书,在正式和生产环境中建议使用自动化的证书托管服务,当然也可以使用用户已有的证书文件,但需要自行监控证书过期时间等。
证书提供者的选项会影响生成的 Ingress 服务的参数:
配置 | Helm Chart 选项 | 是否依赖 cert-manager |
---|---|---|
Rancher 生成证书(默认) | ingress.tls.source=rancher | 是 |
Let’s Encrypt | ingress.tls.source=letsEncrypt | 是 |
用户已有证书文件 | ingress.tls.source=secret | 否 |
安装 cert-manager
用 Helm 来安装和管理 cert-manager 是较为简单的一种方式,截取自官方手册。
添加仓库
helm repo add jetstack https://charts.jetstack.io
更新索引
helm repo update
安装自定义资源定义
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.12.0/cert-manager.crds.yaml
安装cert-manager
helm install \ cert-manager jetstack/cert-manager \ --namespace cert-manager \ --create-namespace \ --version v1.12.0
到此安装完毕,然后需要测试证书工具是否正常工作。
下载
cmctl
,可在官方开源仓库下载,选择合适的架构,一般选择amd64
,以 v1.12.2 为例:wget https://github.com/cert-manager/cert-manager/releases/download/v1.12.2/cmctl-linux-amd64.tar.gz
解压并安装至
$PATH
下方便使用tar xf cmctl-linux-amd64.tar.gz sudo install -m 755 cmctl /usr/local/bin/cmctl
自动化测试
cmctl check api
如果看到提示 The cert-manager API is ready
则部署正常,然后可以检查一下 Pod 状态
kubectl get pods --namespace cert-manager
看到全都是 1/1 就可以使用了
NAME READY STATUS RESTARTS AGE
cert-manager-655c4cf99d-fl4hm 1/1 Running 0 2h
cert-manager-cainjector-845856c584-69h5t 1/1 Running 0 2h
cert-manager-webhook-57876b9fd-x9djz 1/1 Running 0 2h
安装 Rancher
使用 Rancher 自制证书
helm install rancher rancher-stable/rancher \
--namespace cattle-system \
--set hostname=rancher.local \
--set bootstrapPassword=admin
小贴士:这里的 hostname 必须指定,同时将作为网关的访问接入域名,如果域名是私有域名,则需要手动添加本地 DNS 解析或者 hosts 解析。
稍等片刻查看状态
kubectl -n cattle-system get deploy rancher
使用
使用浏览器访问 --hostname
中定义的域名,即可打开 Rancher WebUI。
首次登录的密码可以使用命令进行查询
kubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{{.data.bootstrapPassword|base64decode}}{{ "\n" }}'
登录成功后如图:
▲ 登录验证
▲ 面板首页
▲ 集群页面
附录
参考链接
本文由 柒 创作,采用 知识共享署名4.0
国际许可协议进行许可。
转载本站文章前请注明出处,文章作者保留所有权限。
最后编辑时间: 2023-09-13 19:50 PM