You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置外部域名访问Rancher Kubernetes部署的hello-world应用?

分步解决方案(适配最新Rancher UI)

第一步:确认hello-world的Service配置有效性

  1. 登录Rancher UI,进入目标集群
  2. 左侧导航栏选择「Service Discovery」→「Services」
  3. 定位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路径转发)

  1. 左侧导航栏选择「Service Discovery」→「Ingresses」,点击「Create」
  2. 基础信息配置:
    • Name:自定义名称(如hello-ingress)
    • Namespace:选择hello-world所在的命名空间(如default)
  3. Hosts配置:
    • 点击「Add Host」,填写Hostname为my.domain.org
    • 点击「Add Path」,配置:
      • Path:/hello
      • Path Type:选「Prefix」(确保/hello及/hello/*路径都能匹配)
      • Service:选择已验证的hello-world Service
      • Port:选择Service的80端口
  4. TLS配置(必填,因为要HTTPS访问):
    • 勾选「Enable TLS」
    • 点击「Add Certificate」:
      • 若Rancher UI已使用该域名的证书,直接选择现有证书;
      • 若无证书,选择「Create a new certificate」,填写域名my.domain.org,Rancher将通过Let's Encrypt自动签发(需确保域名可外网访问,且80端口开放用于ACME验证)
  5. 点击「Create」,等待Ingress状态变为「Active」

第三步:验证与排查

  1. 外网访问https://my.domain.org/hello,若能显示hello-world页面则配置成功
  2. 若失败,按以下步骤排查:
    • 检查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应用

  1. 进入目标集群,左侧导航栏「Workload」→「Deployments」,点击「Create」
  2. 配置部署信息:
    • Name:hello-world
    • Namespace:default
    • Docker Image:rancher/hello-world:latest
    • 端口:仅填写容器端口80,无需设置主机端口
    • 点击「Create」,等待Pod状态变为Running

步骤2:创建ClusterIP Service

  1. 「Service Discovery」→「Services」,点击「Create」
  2. 配置:
    • Name:hello-world-svc
    • Namespace:default
    • Type:ClusterIP
    • 端口映射:Service端口80,目标端口80
    • 选择器:添加标签app=hello-world(与Deployment的Pod标签一致)
    • 点击「Create」

步骤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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 18:23:09