RKE2 集群安装 Rancher
后知后觉 暂无评论

集群化安装 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 Encryptingress.tls.source=letsEncrypt
用户已有证书文件ingress.tls.source=secret

安装 cert-manager

用 Helm 来安装和管理 cert-manager 是较为简单的一种方式,截取自官方手册

  1. 添加仓库

    helm repo add jetstack https://charts.jetstack.io
  2. 更新索引

    helm repo update
  3. 安装自定义资源定义

    kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.12.0/cert-manager.crds.yaml
  4. 安装cert-manager

    helm install \
    cert-manager jetstack/cert-manager \
    --namespace cert-manager \
    --create-namespace \
    --version v1.12.0

到此安装完毕,然后需要测试证书工具是否正常工作。

  1. 下载 cmctl ,可在官方开源仓库下载,选择合适的架构,一般选择 amd64,以 v1.12.2 为例:

    wget https://github.com/cert-manager/cert-manager/releases/download/v1.12.2/cmctl-linux-amd64.tar.gz
  2. 解压并安装至 $PATH 下方便使用

    tar xf cmctl-linux-amd64.tar.gz
    sudo install -m 755 cmctl /usr/local/bin/cmctl
  3. 自动化测试

    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" }}'

登录成功后如图:

登录验证

▲ 登录验证

面板首页

▲ 面板首页

集群页面

▲ 集群页面


附录

参考链接

如果遇到问题或者对文章内容存疑,请在下方留言,博主看到后将及时回复,谢谢!
禁用 / 当前已拒绝评论,仅可查看「历史评论」。