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

如何在MicroK8s中通过子域名访问部署的应用容器?

解决MicroK8s子域名访问应用的问题

你的核心问题是子域名无法解析——能正常访问主域名路径,但子域名ping不通、浏览器提示找不到IP。以下是分步解决方案:

1. 优先解决DNS解析问题

子域名jupyter.microk8s.hostname.internal需要指向和主域名microk8s.hostname.internal相同的集群Ingress入口IP。

测试环境(本地hosts文件)

在你用来访问集群的客户端机器上修改hosts文件:

  • Linux/macOS:编辑 /etc/hosts
  • Windows:编辑 C:\Windows\System32\drivers\etc\hosts

添加一行:

[集群Ingress入口IP]  jupyter.microk8s.hostname.internal

获取集群Ingress入口IP的命令:

# 查看目标Ingress的绑定地址
microk8s kubectl get ingress minimal-ingress -n jupyter-notebook
# 或查看Ingress控制器的Service信息
microk8s kubectl get svc nginx-ingress-microk8s-controller -n ingress

单节点集群的话,节点IP就是Ingress的入口IP。

生产/正式环境

在你的DNS服务器上添加一条A记录,将jupyter.microk8s.hostname.internal指向集群Ingress的公网/内网IP。

2. 验证Ingress配置与状态

你的Ingress配置本身无问题,但需确认是否正常生效:

  1. 检查Ingress资源状态:
microk8s kubectl get ingress minimal-ingress -n jupyter-notebook

确保ADDRESS字段显示正确IP,且与主域名解析IP一致。如果ADDRESS为空,排查Ingress控制器:

# 确认Ingress控制器Pod正常运行
microk8s kubectl get pods -n ingress
# 检查IngressClass是否存在(MicroK8s ingress插件默认创建public类)
microk8s kubectl get ingressclasses

你的注解kubernetes.io/ingress.class: public与默认配置匹配,无需修改。

  1. 查看Ingress控制器日志:
    若DNS解析正常但仍无法访问,查看Nginx日志排查路由问题:
microk8s kubectl logs -n ingress -l app.kubernetes.io/name=nginx-ingress

检查是否有请求记录或报错信息。

3. 确认Service与Pod关联正常

你的Service已通过端口转发验证可用,可再确认绑定状态:

# 查看Service是否关联到目标Pod
microk8s kubectl get endpoints jupyter-service -n jupyter-notebook

确保ENDPOINTS字段显示Pod的IP和端口,说明Service与Pod绑定正常。

内容的提问来源于stack exchange,提问作者Viktor Eriksson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 23:25:19