Rancher可在Linux系统通过五种方式部署:一、Docker单节点快速启动(仅测试);二、Docker Compose+自签名证书(单节点安全访问);三、Helm部署于K8s集群(生产首选);四、Nginx Ingress反向代理(暴露ClusterIP服务);五、RKE2高可用集群部署(多节点冗余)。

如果您希望在Linux系统上部署Rancher以实现对Kubernetes集群的集中化管理,则需通过容器化方式运行Rancher Server,并确保其具备高可用、安全访问及持久化存储能力。以下是完成该部署任务的具体步骤:
一、使用Docker单节点快速启动Rancher Server
此方法适用于测试或开发环境,通过官方Rancher镜像启动单个容器实例,所有数据默认存储于容器内部卷中,不推荐用于生产场景。
1、确认系统已安装Docker且服务正在运行,执行docker --version验证版本不低于20.10。
2、拉取最新稳定版Rancher镜像:docker pull rancher/rancher:stable。
3、创建专用bridge网络以隔离Rancher流量:docker network create rancher-net。
4、运行Rancher容器并映射HTTPS端口:docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --network rancher-net -v /opt/rancher:/var/lib/rancher rancher/rancher:stable。
二、基于Docker Compose部署带自签名证书的Rancher
该方式为单节点部署增强型方案,通过挂载自签名TLS证书目录,使Rancher Web界面可通过HTTPS安全访问,避免浏览器证书警告。
1、生成自签名证书文件:使用OpenSSL创建ca.crt、tls.crt和tls.key,存放于/opt/rancher/certs/路径下。
2、编写docker-compose.yml文件,指定证书挂载与主机名绑定:-v /opt/rancher/certs:/container/certs -e CATTLE_TLS_CERT=/container/certs/tls.crt -e CATTLE_TLS_KEY=/container/certs/tls.key。
3、设置容器启动参数强制使用挂载证书:--no-cacerts选项需添加至command字段中。
4、执行docker-compose up -d启动服务,等待容器状态变为healthy后访问https://your-host-ip。
三、使用Helm在现有Kubernetes集群中部署Rancher
此方法将Rancher作为Kubernetes原生应用部署,支持RBAC集成、资源配额控制及Operator模式升级,是生产环境首选方式。
1、确保目标K8s集群已启用cert-manager v1.11+,用于自动签发Ingress TLS证书。
2、添加Rancher Helm仓库并更新索引:helm repo add rancher-stable https://releases.rancher.com/server-charts/stable && helm repo update。
3、创建命名空间cattle-system:kubectl create namespace cattle-system。
4、安装Rancher Chart并指定FQDN与证书类型:helm install rancher rancher-stable/rancher --namespace cattle-system --set hostname=rancher.example.com --set tls=external。
四、配置Nginx Ingress Controller反向代理Rancher服务
当Rancher以ClusterIP Service形式运行时,需借助Ingress暴露至外部,Nginx Ingress可提供路径路由、SSL终止及请求头注入功能。
1、确认集群中已部署Nginx Ingress Controller,并处于Running状态。
2、创建Ingress资源清单,设置host字段匹配Rancher域名,tls段引用已创建的Secret名称。
3、为Rancher Service添加注解启用WebSocket支持:nginx.ingress.kubernetes.io/websocket-services: "rancher"。
4、应用Ingress定义:kubectl apply -f rancher-ingress.yaml,检查Events确认TLS证书加载成功。
五、启用Rancher Server高可用部署(RKE2 + etcd集群)
该方案通过RKE2工具在多个Linux节点上构建嵌入式Kubernetes集群,再将Rancher作为工作负载部署其上,实现控制平面冗余与自动故障转移。
1、准备至少三台Ubuntu 22.04服务器,开放端口6443、9345、80、443及etcd通信端口2379-2380。
2、在首节点执行RKE2安装脚本并配置/etc/rancher/rke2/config.yaml,启用cluster-init: true与token参数。
3、其余节点加入集群时指定--server https://first-node-ip:9345及相同token值。
4、在任一master节点执行kubectl taint nodes --all node-role.kubernetes.io/control-plane:NoSchedule-解除污点,允许Rancher Pod调度。

















