Kubernetes 将DNS条目添加到本地/etc/hosts,以便将流量重定向到PKS入口控制器

Kubernetes 将DNS条目添加到本地/etc/hosts,以便将流量重定向到PKS入口控制器,kubernetes,localhost,kubernetes-ingress,nginx-ingress,kube-dns,Kubernetes,Localhost,Kubernetes Ingress,Nginx Ingress,Kube Dns,我的Kubernetes群集正在Vmware PKS中运行 我拥有入口资源,拥有spec.rules.host:test.domain.com后端服务“测试服务”。我知道,当从集群外部(外部)访问时,通过在DNS服务器中添加条目,将流量路由到我的集群。 但是,如果服务器/云中没有DNS条目,我需要通过向/etc/hosts或类似内容添加条目,在本地测试入口配置 我在一个纯金属教程中发现,将HA代理IP添加到/etc/hosts文件会将流量重定向到kubernetes集群。就这样,将“ip_of_

我的Kubernetes群集正在Vmware PKS中运行

我拥有入口资源,拥有spec.rules.host:test.domain.com后端服务“测试服务”。我知道,当从集群外部(外部)访问时,通过在DNS服务器中添加条目,将流量路由到我的集群。 但是,如果服务器/云中没有DNS条目,我需要通过向/etc/hosts或类似内容添加条目,在本地测试入口配置

我在一个纯金属教程中发现,将HA代理IP添加到/etc/hosts文件会将流量重定向到kubernetes集群。就这样,将“ip_of_k8_cluster test.domain.com”添加到/etc/hosts中,该主机试图像“curl”一样访问,但无法访问URL

如何在没有主机的实际DNS条目的情况下验证入口资源中的主机名(内部)。我想确保我的入口资源正常工作,然后我可以请求我的公司管理员在DNS中添加名称

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  namespace: ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
  name: app-ingress
spec:
  rules:
  - host: test.domain.com
    http:
      paths:
      - backend:
          serviceName: test-service
          servicePort: 80
        path: /

必须添加到
/etc/hosts
的IP不是Kubernetes群集的IP,它必须是入口服务的外部IP


入口服务的
端口
目标端口
也必须正确(在您的情况下,
端口
80
目标端口
到入口服务侦听的端口)。

必须添加到
/etc/hosts
的IP不是Kubernetes群集的IP,它必须是入口服务的外部IP


入口服务的
端口
目标端口
也必须正确(在您的情况下,
端口
80
目标端口
到入口服务侦听的端口)。

使用
curl
解析
标志,例如

host=test.domain.com
adr=<your-external-or-loadbalancer-ip-for-the-nginx-service>
curl -D - --resolv $host:80:$adr http://$host/

例如,将
curl
--resolve
标志一起使用

host=test.domain.com
adr=<your-external-or-loadbalancer-ip-for-the-nginx-service>
curl -D - --resolv $host:80:$adr http://$host/

在本地测试入口时,我只能将服务类型用作负载平衡器。因此,添加服务外部IP将直接将流量路由到服务,而不是入口,因此入口如何在本地进行测试。不,我的意思是,您必须使用入口吊舱的服务IP,并且您还可以使用LoadBalancer而不是外部IP。在这种情况下,这无关紧要。@arunp是否有效?如果是,请将其标记为应答。当使用入口时,明显的服务类型将是NodePort或ClusterIP,并且这些服务类型没有外部IP。在这种情况下,只有LoadBalancer提供ExternalIP。我必须使用kubectl get-ing的IP。我只能在本地测试入口时使用服务类型作为负载平衡器。因此,添加服务外部IP将直接将流量路由到服务,而不是入口,因此入口如何在本地进行测试。不,我的意思是,您必须使用入口吊舱的服务IP,并且您还可以使用LoadBalancer而不是外部IP。在这种情况下,这无关紧要。@arunp是否有效?如果是,请将其标记为应答。当使用入口时,明显的服务类型将是NodePort或ClusterIP,并且这些服务类型没有外部IP。在这种情况下,只有LoadBalancer提供ExternalIP。我必须使用kubectl get-ing的IP。谢谢@lgekman。很高兴知道curl可以选择解析ip。这也是公认的答案。谢谢@lgekman。很高兴知道curl可以选择解析ip。这也是公认的答案。