一、什么事rancher
Rancher 是一个 Kubernetes 管理工具,让你能在任何地方和任何提供商上部署和运行集群。
Rancher 可以创建来自 Kubernetes 托管服务提供商的集群,创建节点并安装 Kubernetes,或者导入在任何地方运行的现有 Kubernetes 集群。
Rancher 基于 Kubernetes 添加了新的功能,包括统一所有集群的身份验证和 RBAC,让系统管理员从一个位置控制全部集群的访问。
此外,Rancher 可以为集群和资源提供更精细的监控和告警,将日志发送到外部提供商,并通过应用商店(Application Catalog)直接集成 Helm。如果你拥有外部 CI/CD 系统,你可以将其与 Rancher 对接。没有的话,你也可以使用 Rancher 提供的 Fleet 自动部署和升级工作负载。
Rancher 是一个 全栈式 的 Kubernetes 容器管理平台,为你提供在任何地方都能成功运行 Kubernetes 的工具。
二、添加helm chart仓库
一、latest:建议用于最新功能
# helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
二、stable: 用于生产环境, 稳定
# helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
三、Alpha: 发布实验性预览
# helm repo add rancher-alpha https://releases.rancher.com/server-charts/alpha
注意:不支持升级到 Alpha 版、从 Alpha 版升级或在 Alpha 版之间升级。
三、为rancher创建命名空间
kubectl create namespace cattle-system
四、选择ssl配置
Rancher Management Server 默认需要 SSL/TLS 配置来保证访问的安全性。
可以从以下三种证书来源中选择一种,用于在 Rancher Server 中终止 TLS:
- Rancher 生成的 TLS 证书:要求你在集群中安装
cert-manager
。Rancher 使用cert-manager
签发并维护证书。Rancher 会生成自己的 CA 证书,并使用该 CA 签署证书。然后cert-manager
负责管理该证书。 - Let's Encrypt:Let's Encrypt 选项也需要使用
cert-manager
。但是,在这种情况下,cert-manager 与 Let's Encrypt 的特殊颁发者相结合,该颁发者执行获取 Let's Encrypt 颁发的证书所需的所有操作(包括请求和验证)。此配置使用 HTTP 验证(HTTP-01
),因此负载均衡器必须具有可以从互联网访问的公共 DNS 记录。 - 你已有的证书:使用已有的 CA 颁发的公有或私有证书。Rancher 将使用该证书来保护 WebSocket 和 HTTPS 流量。在这种情况下,你必须上传名称分别为
tls.crt
和tls.key
的 PEM 格式的证书以及相关的密钥。如果你使用私有 CA,则还必须上传该 CA 证书。这是由于你的节点可能不信任此私有 CA。Rancher 将获取该 CA 证书,并从中生成一个校验和,各种 Rancher 组件将使用该校验和来验证其与 Rancher 的连接。
配置 | Helm Chart 选项 | 是否需要 cert-manager |
---|---|---|
Rancher 生成的证书(默认) | ingress.tls.source=rancher | 是 |
Let’s Encrypt | ingress.tls.source=letsEncrypt | 是 |
你已有的证书 | ingress.tls.source=secret | 否 |
这里选择的是用用rancher生成的证书。
五、安装cert-manager
## 如果你手动安装了CRD,而不是在 Helm 安装命令中添加了 `--set installCRDs=true` 选项,你应该在升级 Helm Chart 之前升级 CRD 资源。
# kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/<VERSION>/cert-manager.crds.yaml
# kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.15.3/cert-manager.crds.yaml
## 添加 Jetstack Helm 仓库
# helm repo add jetstack https://charts.jetstack.io
## 更新本地 Helm Chart 仓库缓存
# helm repo update
## 安装 cert-manager Helm Chart
# helm install cert-manager jetstack/cert-manager \
--namespace cert-manager \
--create-namespace
六、部署
### 使用Rancher生成的证书
默认情况是使用 Rancher 生成 CA,并使用 cert-manager 颁发用于访问 Rancher Server 接口的证书。
由于 rancher 是 ingress.tls.source 的默认选项,因此在执行 helm install 命令时,我们不需要指定 ingress.tls.source。
将 hostname 设置为解析到你的负载均衡器的 DNS 名称。
将 bootstrapPassword 设置为 admin 用户独有的值。
如果你需要安装指定的 Rancher 版本,使用 --version 标志,例如 --version 2.7.0。
对于 Kubernetes v1.25 或更高版本,使用 Rancher v2.7.2-v2.7.4 时,将 global.cattle.psp.enabled 设置为 false。对于 Rancher v2.7.5 及更高版本来说,这不是必需的,但你仍然可以手动设置该选项。
# helm repo update
# helm search repo rancher
# helm pull rancher-stable/rancher
七、编辑values.yaml
八、运行
建议提前下载好所有镜像
# helm upgrade --install rancher -n cattle-system . -f values.yaml
在hosts文件中添加域名对应的IP地址:
192.168.110.111 rancherpro.test.com
192.168.110.112 rancherpro.test.com
# 进入容器,随机生成密码
# kubectl exec -ti rancher-XXXXXXXX sh -n cattle-system
sh-4.4# reset-password
账户:admin
密码:是使用reset-password生成的
九、参考
在 Kubernetes 集群上安装/升级 Rancher | Rancher