Rancher 使用手册详解

Rancher 使用手册详解

文章目录

  • [Rancher 使用手册详解](#Rancher 使用手册详解)
    • [📚 一、快速入门指南](#📚 一、快速入门指南)
      • [1.1 环境准备](#1.1 环境准备)
      • [1.2 单节点快速部署](#1.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

📖 九、学习资源

官方文档

  1. 主要文档: https://rancher.com/docs/
  2. API参考: https://rancher.com/docs/rancher/v2.x/en/api/
  3. 故障排除: https://rancher.com/docs/rancher/v2.x/en/troubleshooting/

培训资源

  1. Rancher Academy: 免费在线课程
  2. 动手实验室: 交互式实验环境
  3. 社区论坛: https://forums.rancher.com/

工具集成

复制代码
常用插件:
- 证书管理: cert-manager
- 服务网格: Istio
- GitOps: Fleet
- 镜像仓库: Harbor
- 密钥管理: Vault

💡 实用技巧

  1. 快捷键

    • Ctrl+K: 集群切换器
    • /: 全局搜索
  2. 批量操作

    • 使用Kubectl批量部署
    • 利用Rancher CLI自动化
  3. 模板管理

    • 创建自定义应用模板
    • 共享模板到组织
  4. 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的主要功能和使用场景。建议根据实际需求选择相应的章节深入学习。对于生产环境部署,请务必参考官方最新文档并进行充分测试。

相关推荐
切糕师学AI2 天前
RKE(Rancher Kubernetes Engine) 是什么?
云原生·容器·kubernetes·rancher
程序媛Dev10 天前
从 Rancher 迁移到 Sealos 私有化的经验
rancher
ζั͡山 ั͡有扶苏 ั͡✾13 天前
从Rancher崩溃中恢复Kubernetes集群访问权限:完整kubeconfig恢复指南
容器·kubernetes·rancher
Ashmcracker15 天前
导入Azure AKS集群到Rancher
microsoft·kubernetes·rancher·azure
ascarl201015 天前
rancher查看日志:failed to create fsnotify watcher: too many open files
rancher
youxiao_9023 天前
kubernetes(三)-Rancher管理k8s集群
容器·kubernetes·rancher
不想画图1 个月前
Kubernetes(五)——rancher部署和Pod详解
linux·kubernetes·rancher
2501_939909051 个月前
Rancher 管理 Kubernetes 集群与Pod的详解
容器·kubernetes·rancher
Zsr10231 个月前
Rancher:一站式Kubernetes管理平台,让容器运维更简单
运维·kubernetes·rancher