跳到主要内容

Rancher 在 Kubernetes 平台部署指南

概述

Rancher 是一个开源的企业级 Kubernetes 管理平台,提供了完整的 Kubernetes 集群生命周期管理功能。本文档将详细介绍如何在 Kubernetes 平台中通过 Helm 部署 Rancher。

目录

  1. 环境准备
  2. Helm 部署 Rancher
  3. 网络配置
  4. 部署验证与访问

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

4. 部署验证与访问

4.1 检查服务状态

# 检查 Rancher Pod 状态
kubectl get pods -n cattle-system

# 检查 Rancher 服务状态
kubectl get svc -n cattle-system

# 检查 Ingress 状态
kubectl get ingress -n cattle-system

4.2 访问 Rancher Web 界面

  1. 在本地 /etc/hosts 文件中添加域名解析:

    <节点IP> rancher.example.com
  2. 在浏览器中访问:https://rancher.example.com

4.3 功能验证

初始设置

  1. 首次访问会要求设置管理员密码
  2. 设置 Rancher Server URL 为 https://rancher.example.com
  3. 完成初始化设置

集群管理验证

  1. 创建测试集群
  2. 导入现有集群
  3. 验证集群状态