You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Kubernetes Ingress路由机制及配置疑问:DNS与服务关联解析

解答你的Ingress相关疑问

咱们一步步来拆解你提到的这几个问题:

1. 当前安装的是哪类Ingress服务?

从你给出的Ingress配置里的注解kubernetes.io/ingress.class: nginx可以直接确定,当前集群里部署的是NGINX Ingress Controller。这个注解是Kubernetes用来指定Ingress资源归属的标准方式——它告诉集群,这个Ingress规则要交给标注为nginx类的Ingress控制器来处理。

2. DNS“k8s.privatecloud.com”配置的对应IP是什么?

这个没法直接从你提供的Ingress配置里得到,得结合集群的实际部署情况查询:

  • 先找到NGINX Ingress Controller对应的Service,执行命令:kubectl get svc -n <nginx-ingress的命名空间>(常见命名空间是ingress-nginxkube-system
  • 如果Service是LoadBalancer类型,它的EXTERNAL-IP字段就是DNS要指向的地址;如果是NodePort类型,DNS要指向集群任意节点的IP,再搭配Service对应的NodePort端口;如果是ClusterIP类型,这个域名一般只用于集群内部访问,外部需要额外代理转发。
  • 另外,k8s.privatecloud.com是私有域名,它的DNS记录(通常是A记录)需要在你的私有DNS服务器上配置,指向上面查到的Ingress控制器入口IP。

3. 该域名的DNS路由是如何实现请求转发的?

整个请求流转的流程大概是这样的:

  1. 用户发起http://testsvc.k8s.privatecloud.com请求时,先向配置的私有DNS服务器查询域名对应的IP;
  2. DNS返回Ingress控制器的入口IP,请求被发送到这个地址;
  3. NGINX Ingress Controller接收到请求后,匹配Ingress资源里的host: testsvc.k8s.privatecloud.com规则;
  4. 根据规则里的http路径配置(你提供的配置未写完,通常会有paths字段指向后端Service),把请求转发到对应的Kubernetes Service;
  5. 最后Service将请求转发到后端的Pod实例,完成整个请求处理。

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

火山引擎 最新活动