基于 Helm 实现 Rancher 高可用集群部署实战
Rancher 作为业界领先的 Kubernetes 多集群管理平台,通过高可用(HA)架构部署可确保管理节点的健壮性。本文将指导如何利用 Helm 工具在生产环境部署高可用 Rancher 集群。
Helm 环境准备
Helm 是 Kubernetes 的包管理工具,能够简化 Chart 的版本发布与生命周期维护。通过以下指令完成 Helm 的部署:
# 下载 Helm 二进制文件
curl -LO https://get.helm.sh/helm-v3.9.2-linux-amd64.tar.gz
tar -zxvf helm-v3.9.2-linux-amd64.tar.gz
sudo mv linux-amd64/helm /usr/local/bin/helm
sudo chmod +x /usr/local/bin/helm
# 添加官方仓库
helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
helm repo update
方案一:使用自定义自签名证书部署
在生产环境中,通常使用企业 CA 签发的证书。若无现成证书,可编写 Shell 脚本基于 OpenSSL 生成自签名证书并导入集群。
# 1. 创建 Rancher 专属命名空间
kubectl create namespace cattle-system
# 2. 将证书与私钥转化为 Kubernetes Secret
kubectl -n cattle-system create secret tls tls-rancher-ingress \
--cert=tls.crt --key=tls.key
# 3. 部署 Rancher 实例
helm install rancher rancher-latest/rancher \
--namespace cattle-system \
--set hostname=rancher.example.com \
--set bootstrapPassword=initialPassword \
--set ingress.tls.source=secret \
--set privateCA=true
方案二:集成 Cert-Manager 自动管理证书
此方案利用 cert-manager 自动获取并续期证书,降低运维开销。
# 1. 安装 cert-manager CRD
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.7.1/cert-manager.crds.yaml
# 2. 通过 Helm 安装 cert-manager
helm repo add jetstack https://charts.jetstack.io
helm install cert-manager jetstack/cert-manager \
--namespace cert-manager --create-namespace --version v1.7.1
# 3. 安装 Rancher
helm install rancher rancher-latest/rancher \
--namespace cattle-system \
--set hostname=rancher.example.com \
--set bootstrapPassword=initialPassword
负载均衡配置
由于 Rancher 以 Deployment 方式运行在多节点上,需在集群前端部署 Nginx 实现四层负载均衡。在 Nginx 配置文件中添加 Stream 模块以转发流量:
stream {
upstream rancher_cluster {
least_conn;
server 192.168.1.10:443;
server 192.168.1.11:443;
server 192.168.1.12:443;
}
server {
listen 443;
proxy_pass rancher_cluster;
}
}
验证部署状态
使用以下命令确认所有 Pod 均已处于 Running 状态,并检查部署进度:
# 检查 Rancher 部署状态
kubectl -n cattle-system rollout status deployment/rancher
# 查看 Pod 详细日志用于排障
kubectl -n cattle-system logs -l app=rancher -f
