将 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-ServiceporttargetPort 也必须正确(在您的情况下 port80targetPort 到您的 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/