Rancher部署手册(helm版本)

使用 Helm 部署 Rancher

1.准备工作

1.1 系统要求

  • Kubernetes 集群版本:1.19.x+
  • 节点资源:至少 8 CPU 核和 16GB 内存
  • 已安装并运行 ingress-nginx Ingress Controller
  • 一个指向 ingress-nginx 控制器入口点(通常是 LoadBalancer Service 的 ExternalIP)的 DNS 记录,用于访问 Rancher UI

1.2 安装 Helm 3

在开始部署之前,需要确保已经安装了 Helm。如果尚未安装,可以通过以下命令安装:

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

验证 Helm 是否安装成功:

helm version

2. 配置文件 (rancher-ingress-tls.yaml)

在部署之前,需要准备一个包含 TLS 证书和私钥的 Kubernetes Secret 配置文件(rancher-ingress-tls.yaml)。Rancher Chart 会创建 Ingress 资源,并引用这个 Secret 来启用 HTTPS。

重要提示:

安全性: 此文件包含敏感的私钥信息,请妥善保管。
证书有效性: 确保证书对于您将在 rancher-values.yaml 中配置的 hostname 是有效的(即证书的 Common Name 或 Subject Alternative Names 包含该域名)。

# rancher-ingress-tls.yaml (仅在手动创建时使用)

apiVersion: v1
kind: Secret
metadata:
  name: tls-rancher-ingress
  namespace: cattle-system
type: kubernetes.io/tls
data:
  # 替换为您的证书文件内容的 base64 编码
  # 生成方式: cat your-cert.pem | base64 -w 0
  tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUR2VENDQXFhZ0F3SUJBZ0lKQU5mTlRnZUxq... # <--- 替换为实际内容
  # 替换为您的私钥文件内容的 base64 编码
  # 生成方式: cat your-key.pem | base64 -w 0
  tls.key: LS0tLS1CRUdJTiBSU0EgUFJJV... # <--- 替换为实际内容

3. 配置文件 (rancher-values.yaml)

在部署之前,需要准备一个 Helm 配置文件(rancher-values.yaml),用于自定义 rancher 的配置。以下是一个示例配置文件的内容:

# rancher-values.yaml

# --- 核心配置 ---

# 必须设置:访问 Rancher UI 的域名
hostname: rancher.yourdomain.com

# --- Ingress 配置 ---

ingress:
  # 启用 Ingress 资源创建
  enabled: true
  # 指定 Ingress Controller 类,对于 ingress-nginx
  ingressClassName: "nginx"
  # TLS 配置
  tls:
    # 指定使用预先创建的 Secret
    source: secret
    # Secret 名称 (默认为 tls-rancher-ingress,如果使用默认名可省略)
    secretName: tls-rancher-ingress

# --- Rancher Server 配置 ---

# Rancher Server 副本数 (高可用)
replicas: 3

# 设置优先级类以避免驱逐
priorityClassName: rancher-critical

# (可选) 设置初始管理员密码
bootstrapPassword: "rancher12345"

# (可选) 启用调试模式
# debug: true

# (可选) 启用审计日志 (例如级别 2)
# auditLog:
#   level: 2 # 0=off, 1=metadata, 2=request/response headers, 3=request/response bodies

# --- 其他 ---

# 确保 Rancher 管理本地集群 (v2.5+ 必须为 true)
addLocal: "true"

# 使用默认的 TLS 卸载方式 (Ingress)
tls: ingress

# 如果没有使用捆绑的 system charts
useBundledSystemChart: false

4.部署 Rancher

4.1 添加 Helm 仓库

helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
helm repo update

4.2 执行部署

#部署 Rancher ingress tls secret
kubectl apply -f rancher-ingress-tls.yaml

#部署rancher
helm upgrade --install rancher rancher-stable/rancher \
  --namespace cattle-system \
  --create-namespace \
  --version 2.11.3 \
  --values rancher-values.yaml

4.3 验证安装

# 查看 Pod 状态,等待所有 Pod Running
kubectl get pods -n cattle-system -w

# 检查 Deployment 状态
kubectl -n cattle-system rollout status deploy/rancher

# 查看 Ingress 和 Service
kubectl get ingress,svc -n cattle-system

# 查看所有相关资源
kubectl get all -n cattle-system

5. 访问 Rancher

5.1 访问方式

默认管理员账号:

  • 用户名:admin
  • 密码:rancher12345

6. 卸载 Rancher

helm uninstall rancher -n cattle-system

7. 参考资源

posted @ 2025-08-08 10:58  怀恋小时候  阅读(541)  评论(0)    收藏  举报