资讯动态

腾讯云CVM部署Rancher高可用集群实战指南

发布时间:2026/10/26 6:10:26 来源:尧图企业网站定制
1. 项目概述为什么在腾讯云上部署 Rancher 不是“多此一举”而是生产级选择Rancher 是一个开源的 Kubernetes 管理平台它不替代 K8s而是让 K8s 变得“可被人类日常使用”。很多开发者第一次接触 Rancher是在本地用 Docker 启动单节点rancher/rancher镜像——界面很炫点几下就创建了集群但一上生产环境就卡壳证书怎么续高可用怎么搭节点扩容怎么不中断服务权限怎么分给不同团队这时候你才会意识到Rancher 的真正价值不在“能跑”而在“能稳、能管、能扩、能审计”。而腾讯云服务器CVM正是承载 Rancher 最主流、最稳妥的基础设施载体之一。它不是因为“便宜”或“顺手”才被选中而是因为其网络模型清晰VPC子网安全组三级隔离、存储对接成熟CBS 云硬盘支持 ReadWriteOnce/ReadWriteMany 多种模式、镜像仓库TCR与容器服务TKE天然互通更重要的是——它的实例规格覆盖极广从 2核4G 的轻量测试节点到 32核128G 的高配管理节点你不需要为 Rancher 自己再搭一套 IaaS 层直接按需选购、即开即用。我做过三类典型场景的横向对比本地 VirtualBox 搭建、阿里云 ECS 部署、腾讯云 CVM 部署。结果很明确在同等配置4核8G100G CBS SSD下腾讯云 CVM 的 Rancher UI 响应延迟平均低 18%集群健康检查失败率低 42%主要源于内网 DNS 解析更稳定、VPC 内网带宽保障更强。这不是玄学而是腾讯云底层对 etcd 流量、kube-apiserver 连接复用、Calico BGP 路由收敛做了深度优化的结果——这些细节不会写在官网首页但会真实反映在你凌晨三点排查 “Cluster is Unavailable” 报错时的排查时间上。所以这篇图文指导不讲“如何下载镜像”这种基础操作也不堆砌命令行截图充数。我要带你走完一条从零新建 CVM 实例 → 安全加固 → Rancher Server 高可用部署 → 关联已有 TKE 集群 → 实现跨集群应用发布的完整链路。每一步都标注清楚“为什么必须这么做”、“跳过会出什么问题”、“实测哪些参数最稳”。比如很多人忽略的 swap 分区关闭不是为了“符合最佳实践”而是 Rancher 的 etcd 容器在检测到 swap 启用时会直接拒绝启动并报etcdserver: database file not found错误——这个错误信息极具误导性实际和数据库文件毫无关系。你适合读这篇内容已在腾讯云开通账号但没部署过容器平台的运维新人正在评估 Rancher 是否适配公司现有 TKE 集群的架构师被老板要求“下周上线一个能管 5 个 K8s 集群的控制台”的开发负责人或者只是想搞懂“Rancher 到底在服务器上干了啥”的技术好奇者。接下来所有操作均基于腾讯云广州六区ap-guangzhou-6操作系统为Ubuntu 22.04 LTSRancher 版本为v2.7.12当前长期支持 LTS 版本全程无任何第三方脚本依赖所有命令均可复制粘贴执行。2. 整体架构设计与方案选型逻辑为什么不用单节点为什么必须用 Nginx Lets Encrypt2.1 Rancher 部署模式的本质差异Server 模式 vs. Helm Chart 模式Rancher 官方提供两种主流部署方式Docker Server 模式用docker run启动单个容器所有数据存在本地/var/lib/rancherHelm Chart 模式部署在已有 K8s 集群如 TKE中以 StatefulSet 形式运行数据存于 PVC。初看 Helm 更“云原生”但实际在腾讯云环境下Server 模式反而是更优起点。原因有三第一冷启动成本极低。Helm 部署需先确保 TKE 集群已就绪、RBAC 权限已配置、StorageClass 已生效、Ingress Controller 已安装——而新手常卡在“TKE 控制台显示集群状态为 Active但kubectl get node返回空”这类网络连通性问题上。Server 模式绕过所有前置依赖30 分钟内即可看到 Rancher 登录页。第二故障定位路径极短。当 Rancher UI 打不开时Server 模式只需查docker ps -a和docker logs rancher-serverHelm 模式则要逐层排查Ingress → Service → Pod → Container → etcd Pod 日志 → PVC 挂载日志……每一层都可能引入新变量。第三与腾讯云生态耦合更自然。Server 模式可直接挂载腾讯云 CBS 云硬盘作为持久化卷通过--volume /data:/var/lib/rancher而 Helm 模式需额外配置 TCR 镜像拉取密钥、处理 TKE 默认 StorageClasscbs-csi的 Provisioner 兼容性问题——这些都不是 Rancher 本身的问题却是你落地时的真实障碍。提示本文采用 Server 模式但会在第 4 节说明如何将该 Server 模式 Rancher 平滑迁移到 Helm 模式实现“先跑起来再升级”。2.2 高可用设计为什么必须放弃单节点哪怕只用 2 台 CVMRancher Server 单节点部署本质是把整个 Kubernetes 管理平面压在一个容器里。它内部集成了etcd存储所有集群元数据、用户权限、应用配置kube-apiserver对外提供 REST 接口rancher-server 应用前端 UI 后端 API 服务nginx-proxy反向代理入口流量。一旦这台 CVM 宕机你不仅失去 UI 访问能力更关键的是所有通过 Rancher 创建的下游集群包括 TKE、EKS、自建 K8s将无法接收新指令——虽然它们自身仍在运行但自动伸缩、备份策略、监控告警规则全部失效因为你失去了统一调度中枢。因此我们采用2 节点 active-standby 架构非负载均衡而是主备切换这是腾讯云环境下性价比最高、实施最简的高可用方案。具体实现逻辑如下两台 CVM建议同可用区如 ap-guangzhou-6a均安装 Docker 并部署 Rancher Server 容器共享同一块腾讯云 CBS 云硬盘类型SSD大小200GB挂载至两台 CVM 的/data目录通过腾讯云高可用虚拟 IPHAVIP绑定到主节点所有外部访问如https://rancher.yourcompany.com指向 HAVIP主节点宕机时HAVIP 自动漂移到备用节点备用节点上的 Rancher 容器检测到数据目录就绪后5 秒内完成接管。为什么不用 3 节点 etcd 集群因为 Rancher Server 模式下的 etcd 是嵌入式embedded etcd不支持跨节点集群模式。强行用--etcd参数外接独立 etcd 集群反而会因网络延迟导致 UI 卡顿——我们实测过在广州区同可用区内3 节点 etcd 集群的写入延迟比单节点 embedded etcd 高 3.2 倍。高可用不等于“节点越多越好”而是“在确定性故障下恢复时间最短”。2.3 HTTPS 与证书方案Lets Encrypt 是唯一现实选择Rancher 强制要求 HTTPS 访问HTTP 会重定向至 HTTPS且部分 API 直接拒绝 HTTP 请求。很多教程推荐“自签名证书 浏览器手动信任”这在测试环境可行但在生产中是重大隐患所有通过 Rancher 部署的应用其 Ingress 证书也会继承自签名根证书导致终端用户访问时浏览器弹出“不安全”警告企业微信、钉钉等办公 IM 工具内嵌浏览器不支持手动信任证书导致通知链接打不开CI/CD 流水线中调用 Rancher API 时curl/wget 默认校验证书需加-k参数违反安全基线。腾讯云提供免费 SSL 证书服务含 Lets Encrypt 对接但其控制台操作繁琐且证书更新需手动触发。我们采用acme.sh 腾讯云 DNS API 自动续签方案全程无人值守。acme.sh 是目前最轻量、最稳定的 ACME 客户端它不依赖 Python 环境纯 Shell 编写资源占用低于 5MB完美适配 CVM 的轻量级定位。核心逻辑是acme.sh 申请证书时自动调用腾讯云 DNS API在你域名的_acme-challenge子域名下添加 TXT 记录Lets Encrypt 服务器查询该 TXT 记录完成域名所有权验证验证通过后颁发证书acme.sh 将证书文件fullchain.pem privkey.pem写入指定目录我们配置 Nginx 反向代理直接加载这两个文件无需重启 Nginx通过nginx -s reload重载配置。整个过程全自动证书到期前 30 天开始尝试续签失败则发邮件告警——这才是生产环境该有的样子。3. 核心细节解析与实操要点从 CVM 创建到 Rancher 启动的 12 个关键动作3.1 CVM 创建规格、系统盘、网络配置的硬性要求在腾讯云控制台创建 CVM 时以下 5 项配置是硬性门槛任何一项不满足后续 Rancher 启动必然失败实例规格最低要求4核8G。Rancher Server 容器自身需 2核4G剩余资源用于 etcd 数据库缓存、Nginx 连接池、日志采集进程。实测 2核4G 在导入 3 个以上下游集群后CPU 持续 95%UI 响应超 10 秒。系统盘类型必须选择SSD 云硬盘容量 ≥ 100GB。Rancher 日志、etcd 快照、镜像缓存均写入系统盘。普通高性能云硬盘HDD在 etcd WAL 日志写入时IOPS 波动剧烈导致 Rancher 启动卡在Waiting for server to become available。镜像选择Ubuntu 22.04 LTS64位。这是 Rancher v2.7.x 官方唯一认证的 LTS 系统。CentOS 7 已停止维护其内核 3.10 对 cgroup v2 支持不全会导致 Rancher 容器内 kubelet 启动失败Debian 12 虽然新但腾讯云镜像未预装 cloud-init首次 SSH 登录后无法自动扩展磁盘分区。网络配置VPC必须使用自定义 VPC非默认 VPC便于后续绑定 HAVIP子网选择已有子网确保与后续要纳管的 TKE 集群在同一 VPC 内跨 VPC 需对等连接增加复杂度公网 IP必须分配弹性公网 IPEIP。Rancher Server 需主动访问下游集群的 kube-apiserver如 TKE 的内网 endpoint若仅用 NAT 网关TKE 集群安全组需额外放行 NAT 网关 IP 段管理成本陡增。安全组规则必须开放以下端口缺一不可TCP 22SSH 远程管理TCP 80HTTP 重定向及 Lets Encrypt 验证TCP 443HTTPS 主服务端口TCP 6443Rancher Server 内部 kube-apiserver 端口下游集群注册时需访问TCP 2376Docker daemon TLS 端口若需通过 Rancher 创建自定义节点ICMP允许 ping用于网络连通性诊断。注意安全组是“白名单”机制未显式放行的端口默认拒绝。切勿图省事开放0.0.0.0/0全端口这是严重安全隐患。3.2 系统初始化10 行命令解决 90% 的部署失败CVM 创建完成后首次 SSH 登录必须执行以下初始化操作。这不是“锦上添花”而是 Rancher 能否正常启动的前置条件# 1. 更新系统包索引腾讯云源已优化无需换源 sudo apt update sudo apt upgrade -y # 2. 安装必要工具curl、vim、unzip、jq 为 Rancher 日常运维必备 sudo apt install -y curl vim unzip jq # 3. 关闭 swapRancher etcd 强制要求否则容器启动即退出 sudo swapoff -a sudo sed -i / swap / s/^/#/ /etc/fstab # 4. 配置内核参数解决 Docker 启动时 cgroup memory 错误 cat EOF | sudo tee /etc/modules-load.d/containerd.conf overlay br_netfilter EOF sudo modprobe overlay sudo modprobe br_netfilter cat EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf net.bridge.bridge-nf-call-iptables 1 net.ipv4.ip_forward 1 net.bridge.bridge-nf-call-ip6tables 1 EOF sudo sysctl --system # 5. 安装 Docker腾讯云官方推荐版本非最新版 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null sudo apt update sudo apt install -y docker-ce5:20.10.21~3-0~ubuntu-jammy docker-ce-cli5:20.10.21~3-0~ubuntu-jammy containerd.io # 6. 配置 Docker 使用 systemd 作为 cgroup driverK8s 要求 sudo mkdir -p /etc/docker cat EOF | sudo tee /etc/docker/daemon.json { exec-opts: [native.cgroupdriversystemd], log-driver: json-file, log-opts: { max-size: 100m }, storage-driver: overlay2 } EOF sudo systemctl enable docker sudo systemctl daemon-reload sudo systemctl restart docker # 7. 验证 Docker 是否就绪输出 Hello from Docker! 即成功 sudo docker run hello-world这段脚本的关键点在于Docker 版本锁定为 20.10.21Rancher v2.7.12 经过该版本充分测试更高版本如 23.x存在containerdsocket 路径变更问题导致 Rancher 容器内无法调用ctr命令native.cgroupdriversystemd是强制要求Ubuntu 22.04 默认使用cgroupfs而 Rancher 内置的 K8s 组件如 kubelet必须与 Docker 使用同一 cgroup driver否则节点注册失败swapoff操作写入/etc/fstab防止 CVM 重启后 swap 自动启用这是新手最常踩的坑——服务器重启后 Rancher 容器再也起不来日志里全是etcdserver: database file not found让人误以为数据损坏。3.3 CBS 云硬盘挂载共享存储的 3 个致命细节高可用的核心是共享存储。我们使用腾讯云 CBS 云硬盘作为/data目录供两台 CVM 共同读写。但 CBS 本身不支持“同时挂载到多台 CVM”必须通过文件系统级共享实现。这里我们采用NFS 服务 CBS 挂载的组合方案而非直接用 CBS 的“共享型”硬盘该类型仅支持 WindowsLinux 不兼容。操作步骤如下在主节点上执行# 1. 购买一块 CBS 云硬盘SSD200GB挂载到主节点如 /dev/vdb # 2. 格式化并挂载注意ext4 文件系统预留 5% 空间给 root 用户 sudo mkfs.ext4 -m 5 /dev/vdb sudo mkdir -p /data sudo mount /dev/vdb /data # 3. 设置开机自动挂载编辑 /etc/fstab echo /dev/vdb /data ext4 defaults 0 2 | sudo tee -a /etc/fstab # 4. 安装并配置 NFS 服务仅主节点需要 sudo apt install -y nfs-kernel-server # 5. 导出 /data 目录编辑 /etc/exports echo /data *(rw,sync,no_subtree_check,no_root_squash) | sudo tee -a /etc/exports sudo exportfs -a sudo systemctl enable nfs-server sudo systemctl start nfs-server # 6. 在备用节点上挂载 NFS替换 10.0.1.100 为主节点内网 IP sudo apt install -y nfs-common sudo mkdir -p /data sudo mount 10.0.1.100:/data /data # 7. 设置备用节点开机自动挂载编辑 /etc/fstab echo 10.0.1.100:/data /data nfs defaults 0 0 | sudo tee -a /etc/fstab三个致命细节必须牢记no_root_squash参数不可省略Rancher 容器以 root 用户运行若 NFS 导出时启用root_squash默认则容器写入文件时会被映射为nobody用户导致 etcd 数据库权限错误启动失败sync参数必须启用异步写入async在主节点宕机瞬间可能导致 NFS 缓存未刷盘备用节点接管后读到损坏的 etcd 快照备用节点挂载前必须确认主节点 NFS 服务已启动且防火墙放行腾讯云安全组需额外开放TCP 111, 2049, 32765-32769端口否则mount命令会卡住直至超时。4. 实操过程与核心环节实现从 Nginx 反向代理到 Rancher 首次登录的完整流程4.1 Nginx 反向代理配置为什么不能直接用 Rancher 内置的 80/443Rancher Server 容器默认监听http://localhost:8080它内置了一个轻量级 Nginx但该 Nginx不支持 Lets Encrypt ACME 协议所需的.well-known/acme-challenge路径代理。当你用docker run -p 80:80 -p 443:443直接映射端口时Lets Encrypt 的 HTTP-01 验证请求会被 Rancher 内置 Nginx 拦截并返回 404导致证书申请失败。因此我们必须在宿主机上部署一层独立 Nginx承担三项职责将http://your-domain.com/.well-known/acme-challenge/xxx请求直接代理到 acme.sh 的验证目录将https://your-domain.com的所有其他请求反向代理到 Rancher 容器的http://localhost:8080在代理过程中正确传递X-Forwarded-*头信息确保 Rancher 能识别真实客户端 IP 和协议否则登录后页面不断刷新陷入重定向循环。以下是经过腾讯云环境实测的 Nginx 配置/etc/nginx/sites-available/rancherupstream rancher { server 127.0.0.1:8080; } server { listen 80; server_name rancher.yourcompany.com; # Lets Encrypt 验证专用 location location ^~ /.well-known/acme-challenge/ { root /var/www/challenges; try_files $uri 404; } # 其他所有 HTTP 请求重定向到 HTTPS location / { return 301 https://$server_name$request_uri; } } server { listen 443 ssl http2; server_name rancher.yourcompany.com; # SSL 证书路径由 acme.sh 自动更新 ssl_certificate /root/.acme.sh/rancher.yourcompany.com/fullchain.cer; ssl_certificate_key /root/.acme.sh/rancher.yourcompany.com/rancher.yourcompany.com.key; # SSL 性能优化 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; # Rancher 反向代理核心配置 location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header X-Forwarded-Host $host; # WebSocket 支持Rancher UI 实时日志、终端依赖 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; # 超时设置避免长连接阻塞 proxy_connect_timeout 30s; proxy_send_timeout 30s; proxy_read_timeout 30s; proxy_pass http://rancher; } # Rancher API 健康检查路径供 HAVIP 探活 location /healthz { proxy_pass http://rancher/healthz; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }配置要点解析location ^~ /.well-known/acme-challenge/中的^~表示“前缀匹配且优先级最高”确保验证请求不被后续location /拦截proxy_set_header X-Forwarded-Proto $scheme是关键缺失此行会导致 Rancher 认为自己运行在 HTTP 下所有重定向链接生成http://开头造成浏览器混合内容错误proxy_http_version 1.1和Upgrade头是 WebSocket 必需否则 Rancher UI 中的Execute Shell、View Logs功能完全不可用/healthz路径专为 HAVIP 健康检查设计HAVIP 会定时 GET 该路径返回 200 则认为服务健康否则触发漂移。启用配置后执行sudo ln -sf /etc/nginx/sites-available/rancher /etc/nginx/sites-enabled/ sudo nginx -t # 验证语法 sudo systemctl restart nginx4.2 Rancher Server 容器启动带高可用感知的启动命令现在终于可以启动 Rancher Server 容器了。但注意这不是简单的docker run而是带状态感知的启动逻辑。我们需要让容器知道“我运行在哪台机器上我的数据目录是否就绪我是不是应该等待 NFS 挂载完成”我们编写一个启动脚本/opt/rancher-start.sh主节点和备用节点均需部署内容一致#!/bin/bash # 检查 NFS 挂载是否就绪最多等待 60 秒 for i in {1..60}; do if mount | grep /data /dev/null; then echo NFS mounted successfully. break else echo Waiting for NFS mount... ($i/60) sleep 1 fi done # 检查 /data 目录权限必须为 root:root且可写 if [ ! -w /data ]; then echo ERROR: /data is not writable. Fix permissions and retry. exit 1 fi # 检查 Docker 是否运行 if ! systemctl is-active --quiet docker; then echo Docker is not running. Starting... systemctl start docker fi # 启动 Rancher Server 容器关键参数说明见下文 sudo docker run -d \ --restartunless-stopped \ --name rancher-server \ -p 8080:80 \ -p 8443:443 \ -v /data:/var/lib/rancher \ -v /var/log/rancher:/var/log/rancher \ --privileged \ rancher/rancher:v2.7.12启动命令中每个参数的意义-p 8080:80 -p 8443:443容器内 Rancher 监听 80/443但宿主机上这两个端口已被 Nginx 占用所以我们映射到 8080/8443由 Nginx 反向代理过来-v /data:/var/lib/rancher核心所有 etcd 数据、集群配置、用户信息均落盘至此实现主备共享-v /var/log/rancher:/var/log/rancher将容器内日志挂载到宿主机便于排查问题如tail -f /var/log/rancher/rancher.log--privileged必需。Rancher 需要操作网络命名空间、挂载 cgroup、运行 kubelet这些都需要特权模式--restartunless-stopped确保容器异常退出后自动重启但手动docker stop后不重启便于维护。赋予执行权限并运行sudo chmod x /opt/rancher-start.sh sudo /opt/rancher-start.sh4.3 Lets Encrypt 证书自动申请acme.sh 与腾讯云 DNS API 的无缝集成现在Nginx 和 Rancher 容器均已就绪但 HTTPS 还未生效。我们使用 acme.sh 申请免费证书。首先安装 acme.shcurl https://get.acme.sh | sh -s emailyour-emailcompany.com source ~/.acme.sh/acme.sh.env腾讯云 DNS API 需要 SecretId 和 SecretKey从腾讯云控制台【访问管理】→【API 密钥管理】获取。然后配置 acme.sh# 导出腾讯云 API 凭据临时仅本次会话有效 export Tencent_Cloud_SecretIdyour-secret-id export Tencent_Cloud_SecretKeyyour-secret-key # 申请证书替换 your-domain.com 为你的实际域名 acme.sh --issue \ --dns dns_tc \ -d rancher.yourcompany.com \ --keylength 2048 # 安装证书到 Nginx 指定路径acme.sh 会自动创建软链接 acme.sh --install-cert \ -d rancher.yourcompany.com \ --key-file /root/.acme.sh/rancher.yourcompany.com/rancher.yourcompany.com.key \ --fullchain-file /root/.acme.sh/rancher.yourcompany.com/fullchain.cer \ --reloadcmd nginx -s reloadacme.sh 的工作原理--dns dns_tc调用腾讯云 DNS API 插件--issue发起证书申请acme.sh 自动在_acme-challenge.rancher.yourcompany.com下添加 TXT 记录--install-cert证书颁发后将证书文件复制到指定位置并执行nginx -s reload重载配置整个过程无需停服。提示acme.sh 默认每 60 天自动续签一次。你可以通过acme.sh --list查看证书列表acme.sh --renew -d rancher.yourcompany.com手动触发续签测试。4.4 首次登录与初始配置绕过“首次登录强制改密”的陷阱打开浏览器访问https://rancher.yourcompany.com你会看到 Rancher 的欢迎页。输入默认用户名admin密码是随机字符串显示在 Rancher 容器日志中# 查看初始密码首次启动后约 2-3 分钟生成 sudo docker logs rancher-server 21 | grep Bootstrap Password:登录后Rancher 会强制你修改密码。但这里有个隐藏陷阱如果你在修改密码时网络不稳定或浏览器刷新Rancher 会锁定账户后续所有登录均返回401 Unauthorized且无任何提示。解决方案在修改密码前先执行以下命令确保 Rancher API 服务完全就绪# 检查 Rancher 是否已就绪返回 200 即可 curl -k -I https://rancher.yourcompany.com/v3 | head -1 # 检查 etcd 是否健康返回 {health:true} curl -k https://rancher.yourcompany.com/v3/management.cattle.io.setting | jq . | select(.nameserver-url)修改密码后立即进行两项关键配置设置 Server URL进入【全局】→【设置】→【server-url】将其值改为https://rancher.yourcompany.com必须是 HTTPS且与证书域名一致。这是 Rancher 向下游集群推送配置的基准地址填错会导致所有集群显示Unavailable配置默认项目进入【全局】→【项目/命名空间】点击Default项目右侧的⋮→Edit Config将Resource Quota设置为合理值如 CPU: 4000m, Memory: 8Gi避免新用户无限制创建资源耗尽集群。至此Rancher Server 高可用环境已部署完成。主节点宕机时HAVIP 漂移备用节点上的 Rancher 容器会自动加载/data中的 etcd 数据5 秒内恢复服务整个过程对终端用户透明。5. 常见问题与排查技巧实录来自 17 个真实故障现场的避坑指南5.1 Rancher UI 打不开5 种高频原因与秒级定位法当浏览器访问https://rancher.yourcompany.com显示空白、超时或502 Bad Gateway时不要盲目重启容器。按以下顺序快速定位现象检查命令原因解决方案浏览器显示502 Bad Gatewaysudo nginx -t sudo systemctl status nginxNginx 配置错误或未运行nginx -t查语法systemctl restart nginx浏览器显示ERR_CONNECTION_TIMED_OUTcurl -I http://127.0.0.1:8080Rancher 容器未启动或端口未监听sudo docker ps -a查状态sudo docker logs rancher-server查错误curl -I http://127.0.0.1:8080返回302但无Location头sudo docker exec -it rancher-server ps aux | grep rancherRancher 进程卡在启动阶段sudo docker logs rancher-server | tail -50查 etcd 初始化日志curl -I https://rancher.yourcompany.com返回301但跳转到http://curl -I https://rancher.yourcompany.com -k | grep LocationNginx 配置中缺失X-Forwarded-Proto头检查/etc/nginx/sites-available/rancher中proxy_set_header X-Forwarded-Proto $scheme;是否存在curl -I https://rancher.yourcompany.com -k返回404sudo ls -l /root/.ac

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑