Rancher 使用手册详解

文章目录
- [Rancher 使用手册详解](#Rancher 使用手册详解)
-
- [📚 一、快速入门指南](#📚 一、快速入门指南)
-
- [1.1 环境准备](#1.1 环境准备)
- [1.2 单节点快速部署](#1.2 单节点快速部署)
- [🏗️ 二、集群管理](#🏗️ 二、集群管理)
-
- [2.1 创建Kubernetes集群](#2.1 创建Kubernetes集群)
- [2.2 集群配置示例](#2.2 集群配置示例)
- [📦 三、应用部署](#📦 三、应用部署)
-
- [3.1 通过Catalog部署应用](#3.1 通过Catalog部署应用)
- [3.2 Helm Chart自定义部署](#3.2 Helm Chart自定义部署)
- [3.3 工作负载管理](#3.3 工作负载管理)
- [🔐 四、安全管理](#🔐 四、安全管理)
-
- [4.1 多租户配置](#4.1 多租户配置)
- [4.2 网络策略](#4.2 网络策略)
- [4.3 安全扫描](#4.3 安全扫描)
- [📊 五、监控与日志](#📊 五、监控与日志)
-
- [5.1 启用监控](#5.1 启用监控)
- [5.2 自定义监控仪表板](#5.2 自定义监控仪表板)
- [5.3 日志收集配置](#5.3 日志收集配置)
- [🔄 六、CI/CD流水线](#🔄 六、CI/CD流水线)
-
- [6.1 配置流水线](#6.1 配置流水线)
- [6.2 流水线示例](#6.2 流水线示例)
- [🛠️ 七、运维操作](#🛠️ 七、运维操作)
-
- [7.1 备份与恢复](#7.1 备份与恢复)
- [7.2 集群升级](#7.2 集群升级)
- [7.3 故障排查](#7.3 故障排查)
- [🎯 八、最佳实践](#🎯 八、最佳实践)
-
- [8.1 生产环境建议](#8.1 生产环境建议)
- [8.2 性能优化](#8.2 性能优化)
- [8.3 资源清理策略](#8.3 资源清理策略)
- [📖 九、学习资源](#📖 九、学习资源)
- [💡 实用技巧](#💡 实用技巧)
📚 一、快速入门指南
1.1 环境准备
最低配置要求:
- CPU: 4核+
- 内存: 8GB+
- 存储: 50GB+
- 操作系统: Ubuntu/CentOS/RHEL/Debian
- Docker: 20.10+
1.2 单节点快速部署
bash
# 1. 使用Docker运行Rancher Server
docker run -d \
--name rancher \
--restart=unless-stopped \
-p 80:80 -p 443:443 \
--privileged \
-v /opt/rancher:/var/lib/rancher \
rancher/rancher:latest
# 2. 访问Web界面
# 浏览器打开: https://<服务器IP>
# 首次登录获取初始密码:
docker logs rancher 2>&1 | grep "Bootstrap Password"
🏗️ 二、集群管理
2.1 创建Kubernetes集群
方式一:自定义RKE集群
步骤:
1. 登录Rancher UI → 集群 → 创建
2. 选择"自定义"
3. 配置集群参数:
- Kubernetes版本
- 网络插件(Calico/Flannel/Cilium)
- Ingress控制器
- 云提供商集成
4. 添加节点角色:
- etcd(存储)
- Control Plane(控制平面)
- Worker(工作节点)
5. 复制节点命令到目标服务器执行
方式二:导入已有集群
bash
# 1. 在Rancher中创建"导入"类型集群
# 2. 获取注册命令
# 3. 在目标集群执行:
curl --insecure -sfL https://<rancher-server>/v3/import/<token>.yaml | kubectl apply -f -
2.2 集群配置示例
yaml
# rke-config.yaml(RKE集群配置文件)
cluster_name: my-prod-cluster
kubernetes_version: v1.25.9
nodes:
- address: 192.168.1.10
user: root
role: [controlplane, etcd, worker]
- address: 192.168.1.11
user: root
role: [worker]
network:
plugin: calico
services:
etcd:
snapshot: true
creation: 6h
retention: 24h
📦 三、应用部署
3.1 通过Catalog部署应用
操作路径:
1. 进入项目视图 → 应用市场
2. 选择应用(如:nginx、redis、wordpress)
3. 配置参数:
- 命名空间
- 副本数
- 资源限制
- 环境变量
4. 点击启动
3.2 Helm Chart自定义部署
yaml
# 自定义values.yaml示例
# wordpress-values.yaml
wordpressUsername: admin
wordpressPassword: secret-password
wordpressEmail: admin@example.com
service:
type: LoadBalancer
port: 80
persistence:
enabled: true
size: 10Gi
3.3 工作负载管理
yaml
# 通过YAML部署Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.21
ports:
- containerPort: 80
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
🔐 四、安全管理
4.1 多租户配置
1. 创建用户
- 本地用户
- 外部认证(LDAP/AD/OAuth)
2. 配置角色:
- 集群所有者
- 集群成员
- 项目所有者
- 项目成员
- 自定义角色
3. 项目隔离:
- 创建项目 → 分配用户 → 设置资源配额
4.2 网络策略
yaml
# 网络策略示例
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: backend-policy
spec:
podSelector:
matchLabels:
app: backend
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
app: frontend
ports:
- protocol: TCP
port: 8080
4.3 安全扫描
操作路径:
1. 系统工具 → 扫描
2. 配置扫描策略:
- 漏洞阈值(CRITICAL/HIGH/MEDIUM)
- 定期扫描计划
- 忽略特定CVE
3. 查看扫描报告
📊 五、监控与日志
5.1 启用监控
步骤:
1. 集群 → 工具 → 监控
2. 配置数据保留时间
3. 设置资源分配
4. 启用监控组件(Prometheus+Grafana)
5.2 自定义监控仪表板
json
# Grafana仪表板配置示例
{
"dashboard": {
"title": "应用监控",
"panels": [
{
"title": "CPU使用率",
"targets": [
{
"expr": "rate(container_cpu_usage_seconds_total{namespace=\"$namespace\"}[5m])",
"legendFormat": "{{pod}}"
}
]
}
]
}
}
5.3 日志收集配置
yaml
# ClusterLogging CRD配置
apiVersion: logging.banzaicloud.io/v1beta1
kind: ClusterOutput
metadata:
name: elasticsearch-output
spec:
elasticsearch:
host: elasticsearch-logging.default.svc.cluster.local
port: 9200
---
apiVersion: logging.banzaicloud.io/v1beta1
kind: ClusterFlow
metadata:
name: all-logs-flow
spec:
match:
- select: {}
localOutputRefs:
- elasticsearch-output
🔄 六、CI/CD流水线
6.1 配置流水线
步骤:
1. 项目 → 工具 → 流水线
2. 添加版本控制提供商:
- GitHub/GitLab/Bitbucket
- 配置访问令牌
3. 创建.rancher-pipeline.yml
6.2 流水线示例
yaml
# .rancher-pipeline.yml
stages:
- name: 构建
steps:
- runScriptConfig:
image: maven:3.8-jdk-11
shellScript: |
mvn clean package
- publishImageConfig:
dockerfilePath: ./Dockerfile
buildContext: .
tag: myapp:${CICD_EXECUTION_SEQUENCE}
- name: 测试
steps:
- runScriptConfig:
image: alpine:3.14
shellScript: |
echo "运行测试..."
- name: 部署
steps:
- applyYamlConfig:
path: ./deployment.yaml
content: |
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: myapp:${CICD_EXECUTION_SEQUENCE}
🛠️ 七、运维操作
7.1 备份与恢复
bash
# 备份Rancher配置
helm get values rancher -n cattle-system > rancher-values.yaml
# 备份集群状态
kubectl get clusters.management.cattle.io -o yaml > clusters-backup.yaml
# 使用Rancher Backup Operator
# 1. 安装Backup Operator
# 2. 创建备份计划
# 3. 配置存储位置(S3/MinIO等)
7.2 集群升级
滚动升级步骤:
1. 准备阶段:
- 备份ETCD
- 检查节点状态
- 确认存储空间
2. 升级Rancher Server:
helm upgrade rancher rancher-stable/rancher \
--namespace cattle-system \
--version 2.7.0
3. 升级下游集群:
- 集群 → 升级
- 选择新版本
- 逐节点滚动升级
7.3 故障排查
bash
# 常见诊断命令
# 1. 检查组件状态
kubectl get pods -n cattle-system
# 2. 查看Rancher日志
kubectl logs -f deployment/rancher -n cattle-system
# 3. 检查网络连接
kubectl run net-check --image=alpine --rm -it -- ping <目标地址>
# 4. 重置Rancher Agent
docker stop rancher-agent
docker rm rancher-agent
# 重新运行agent命令
🎯 八、最佳实践
8.1 生产环境建议
架构设计:
- 3节点Rancher Server(高可用)
- 外部数据库(MySQL/PostgreSQL)
- 负载均衡器
- 对象存储备份
安全配置:
- 启用TLS证书
- 配置Pod安全策略
- 启用网络策略
- 定期漏洞扫描
监控告警:
- 关键指标监控
- 设置资源阈值告警
- 日志聚合分析
8.2 性能优化
yaml
# Rancher Server资源配置建议
resources:
requests:
memory: "2Gi"
cpu: "1000m"
limits:
memory: "4Gi"
cpu: "2000m"
# 节点标签与污点
nodeSelector:
dedicated: rancher-server
tolerations:
- key: "dedicated"
operator: "Equal"
value: "rancher-server"
effect: "NoSchedule"
8.3 资源清理策略
bash
# 定期清理资源
# 1. 清理完成的Job
kubectl delete job --field-selector status.successful=1
# 2. 清理未使用的镜像
docker image prune -a --filter "until=72h"
# 3. 清理ETCD碎片
etcdctl defrag --endpoints=https://127.0.0.1:2379
📖 九、学习资源
官方文档
- 主要文档: https://rancher.com/docs/
- API参考: https://rancher.com/docs/rancher/v2.x/en/api/
- 故障排除: https://rancher.com/docs/rancher/v2.x/en/troubleshooting/
培训资源
- Rancher Academy: 免费在线课程
- 动手实验室: 交互式实验环境
- 社区论坛: https://forums.rancher.com/
工具集成
常用插件:
- 证书管理: cert-manager
- 服务网格: Istio
- GitOps: Fleet
- 镜像仓库: Harbor
- 密钥管理: Vault
💡 实用技巧
-
快捷键:
Ctrl+K: 集群切换器/: 全局搜索
-
批量操作:
- 使用Kubectl批量部署
- 利用Rancher CLI自动化
-
模板管理:
- 创建自定义应用模板
- 共享模板到组织
-
API自动化:
bash# 使用Rancher CLI rancher clusters ls rancher apps install wordpress # 使用API Token curl -u "${RANCHER_TOKEN}" \ -X POST \ -H 'Content-Type: application/json' \ https://rancher.example.com/v3/projects
这个使用手册涵盖了Rancher的主要功能和使用场景。建议根据实际需求选择相应的章节深入学习。对于生产环境部署,请务必参考官方最新文档并进行充分测试。