如何配置外部域名访问Rancher Kubernetes部署的hello-world应用?
分步解决方案(适配最新Rancher UI)
第一步:确认hello-world的Service配置有效性
- 登录Rancher UI,进入目标集群
- 左侧导航栏选择「Service Discovery」→「Services」
- 定位hello-world对应的Service(自动创建或手动搭建的),核对以下配置:
- 类型为ClusterIP(无需LoadBalancer,Ingress将基于此转发流量)
- 端口映射正确:容器端口与Service端口均设为80(rancher/hello-world默认监听80)
- 选择器(Selector)与hello-world Pod的标签完全匹配(例如
app=hello-world) - 集群内验证:在集群任意Pod中执行
curl <Service的ClusterIP>:80,能返回hello-world页面则说明Service正常
第二步:创建Ingress规则(实现HTTPS路径转发)
- 左侧导航栏选择「Service Discovery」→「Ingresses」,点击「Create」
- 基础信息配置:
- Name:自定义名称(如
hello-ingress) - Namespace:选择hello-world所在的命名空间(如
default)
- Name:自定义名称(如
- Hosts配置:
- 点击「Add Host」,填写
Hostname为my.domain.org - 点击「Add Path」,配置:
- Path:
/hello - Path Type:选「Prefix」(确保
/hello及/hello/*路径都能匹配) - Service:选择已验证的hello-world Service
- Port:选择Service的80端口
- Path:
- 点击「Add Host」,填写
- TLS配置(必填,因为要HTTPS访问):
- 勾选「Enable TLS」
- 点击「Add Certificate」:
- 若Rancher UI已使用该域名的证书,直接选择现有证书;
- 若无证书,选择「Create a new certificate」,填写域名
my.domain.org,Rancher将通过Let's Encrypt自动签发(需确保域名可外网访问,且80端口开放用于ACME验证)
- 点击「Create」,等待Ingress状态变为「Active」
第三步:验证与排查
- 外网访问
https://my.domain.org/hello,若能显示hello-world页面则配置成功 - 若失败,按以下步骤排查:
- 检查Ingress Controller状态:左侧导航栏「Workload」→「Pods」,确认nginx-ingress相关Pod处于Running状态(未安装则在「Cluster Tools」中安装)
- 查看Ingress事件:进入Ingress详情页的「Events」标签,排查报错(如证书签发失败、Service匹配错误)
- 端口转发验证:确保本地PC的443端口已映射至互联网,且流量能到达Ingress Controller的对应端口
完整场景教程(从部署到外网访问)
前提条件
- 本地PC运行Rancher,
my.domain.org已完成DNS解析,可通过HTTPS访问Rancher UI - Rancher中已创建/导入Kubernetes集群(如Docker Desktop单节点集群、RKE2/K3s集群)
步骤1:部署hello-world应用
- 进入目标集群,左侧导航栏「Workload」→「Deployments」,点击「Create」
- 配置部署信息:
- Name:
hello-world - Namespace:
default - Docker Image:
rancher/hello-world:latest - 端口:仅填写容器端口80,无需设置主机端口
- 点击「Create」,等待Pod状态变为Running
- Name:
步骤2:创建ClusterIP Service
- 「Service Discovery」→「Services」,点击「Create」
- 配置:
- Name:
hello-world-svc - Namespace:
default - Type:ClusterIP
- 端口映射:Service端口80,目标端口80
- 选择器:添加标签
app=hello-world(与Deployment的Pod标签一致) - 点击「Create」
- Name:
步骤3:配置Ingress实现HTTPS路径转发
按照「分步解决方案」中的第二步操作完成Ingress配置
常见问题排查
- Ingress状态Pending:检查nginx-ingress是否已安装,未安装则在「Cluster Tools」中部署
- 访问404:核对Ingress的Path、Path Type,以及Service选择器与Pod标签的匹配度
- HTTPS证书报错:自定义证书需包含
my.domain.org域名;自动签发证书需确保域名可外网访问、80端口开放 - 本地端口转发问题:确认路由器已将外网443端口转发至本地PC的对应端口(Ingress Controller的HostPort或NodePort)
内容的提问来源于stack exchange,提问作者Tristate
相关产品推荐
相关产品推荐

