Kubernetes 将DNS条目添加到本地/etc/hosts,以便将流量重定向到PKS入口控制器
我的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中添加名称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_
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。这也是公认的答案。