将 DNS 条目添加到本地 /etc/hosts 以将流量重定向到 PKS Ingress 控制器
Add DNS entry to local /etc/hosts for traffic redirect to PKS Ingress controller
我的 Kubernetes 集群在 Vmware PKS 中是 运行。
我有 Ingress 资源 spec.rules.host:test.domain.com 用于后端服务 "test-service" .我知道通过在 DNS 服务器中添加一个条目,当从集群外部(外部)访问时,会将流量路由到我的集群。
但是 server/cloud 中没有 DNS 条目,我需要通过向 /etc/hosts 或类似内容添加条目来在本地测试 Ingress 配置。
我在 baremetal 教程中发现,将 HA 代理 IP 添加到 /etc/hosts 文件会将流量重定向到 kubernetes 集群。就像那样,将 "ip_of_k8_cluster test.domain.com" 添加到 /etc/hosts 尝试访问 "curl http://test.domain.com/" 但 URL 无法访问。
如何在没有主机的实际 DNS 条目的情况下验证(内部)Ingress 资源中的主机名。我想确保我的 Ingress 资源正常工作,然后我可以请求我的公司管理员在 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-Cluster 的 IP,它必须是 External-IP [=20] =]入口服务.
并且 Ingress-Service 的 port
和 targetPort
也必须正确(在您的情况下 port
到 80
和 targetPort
到您的 Ingress 服务侦听的那个。
使用 curl
和 --resolve
标志,例如;
host=test.domain.com
adr=<your-external-or-loadbalancer-ip-for-the-nginx-service>
curl -D - --resolv $host:80:$adr http://$host/
或使用 https;
curl -D - --resolv $host:443:$adr --insecure https://$host/
我的 Kubernetes 集群在 Vmware PKS 中是 运行。
我有 Ingress 资源 spec.rules.host:test.domain.com 用于后端服务 "test-service" .我知道通过在 DNS 服务器中添加一个条目,当从集群外部(外部)访问时,会将流量路由到我的集群。 但是 server/cloud 中没有 DNS 条目,我需要通过向 /etc/hosts 或类似内容添加条目来在本地测试 Ingress 配置。
我在 baremetal 教程中发现,将 HA 代理 IP 添加到 /etc/hosts 文件会将流量重定向到 kubernetes 集群。就像那样,将 "ip_of_k8_cluster test.domain.com" 添加到 /etc/hosts 尝试访问 "curl http://test.domain.com/" 但 URL 无法访问。
如何在没有主机的实际 DNS 条目的情况下验证(内部)Ingress 资源中的主机名。我想确保我的 Ingress 资源正常工作,然后我可以请求我的公司管理员在 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-Cluster 的 IP,它必须是 External-IP [=20] =]入口服务.
并且 Ingress-Service 的 port
和 targetPort
也必须正确(在您的情况下 port
到 80
和 targetPort
到您的 Ingress 服务侦听的那个。
使用 curl
和 --resolve
标志,例如;
host=test.domain.com
adr=<your-external-or-loadbalancer-ip-for-the-nginx-service>
curl -D - --resolv $host:80:$adr http://$host/
或使用 https;
curl -D - --resolv $host:443:$adr --insecure https://$host/