Rancher 在 Kubernetes 平台部署指南
概述
Rancher 是一个开源的企业级 Kubernetes 管理平台,提供了完整的 Kubernetes 集群生命周期管理功能。本文档将详细介绍如何在 Kubernetes 平台中通过 Helm 部署 Rancher。
目录
- 环境准备
- 1.1 Kubernetes 平台要求
- 1.2 必需组件启用
- Helm 部署 Rancher
- 2.1 添加 Rancher Helm 仓库
- 2.2 配置 Rancher 参数
- 2.3 安装 Rancher
- 网络配置
- 3.1 创建 Ingress
- 部署验证与访问
- 4.1 检查服务状态
- 4.2 访问 Rancher Web 界面
- 4.3 功能验证
1. 环境准备
1.1 Kubernetes 平台要求
- Kubernetes 版本: 1.20+
- 节点配置: 至少 2 个节点,每个节点最少 2 核 4GB 内存
- 存储类: 需要配置默认存储类(如 NFS、Local Path 等)
- Ingress Controller: 需要安装 Nginx Ingress Controller
1.2 必需组件启用
确保以下组件已启用:
- Ingress Controller(如 Nginx Ingress)
- 默认 StorageClass
- Cert-Manager(用于 SSL 证书管理)
2. Helm 部署 Rancher
2.1 添加 Rancher Helm 仓库
# 添加 Rancher Helm 仓库
helm repo add rancher-stable https://rancher.com/charts
helm repo update
2.2 配置 Rancher 参数
创建 rancher-values.yaml 配置文件:
# Rancher 配置
hostname: rancher.example.com
# Rancher 副本数
replicas: 2
# Ingress 配置
ingress:
enabled: true
tls:
source: rancher
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/proxy-connect-timeout: "30"
nginx.ingress.kubernetes.io/proxy-read-timeout: "1800"
nginx.ingress.kubernetes.io/proxy-send-timeout: "1800"
# TLS 配置
tls:
external: {}
# Rancher 镜像配置
rancherImage: rancher/rancher
rancherImageTag: v2.7.0
# 资源限制
resources:
limits:
cpu: 1000m
memory: 2Gi
requests:
cpu: 500m
memory: 1Gi
# 持久化存储
persistence:
enabled: true
storageClass: ""
accessMode: ReadWriteOnce
size: 5Gi
# 审计日志
auditLog:
level: 0
destination: sidecar
maxAge: 1
maxBackup: 1
maxSize: 100
# 其他配置
additionalTrustedCAs: false
debug: false
2.3 安装 Rancher
# 创建命名空间
kubectl create namespace cattle-system
# 安装 Rancher
helm install rancher rancher-stable/rancher \
--namespace cattle-system \
--values rancher-values.yaml \
--version 2.7.0
3. 网络配置
3.1 创建 Ingress
Rancher 会自动创建 Ingress,但如需自定义,可以使用以下 YAML:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: rancher-ingress
namespace: cattle-system
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/proxy-connect-timeout: "30"
nginx.ingress.kubernetes.io/proxy-read-timeout: "1800"
nginx.ingress.kubernetes.io/proxy-send-timeout: "1800"
spec:
tls:
- hosts:
- rancher.example.com
secretName: tls-rancher-ingress
rules:
- host: rancher.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: rancher
port:
number: 80