kubernetes - 将 DNS 条目添加到本地 /etc/hosts 以将流量重定向到 PKS Ingress 控制器
问题描述
我的 Kubernetes 集群在 Vmware PKS 中运行。
我有用于后端服务“test-service”的带有spec.rules.host: test.domain.com的Ingress资源。我知道,通过在 DNS 服务器中添加一个条目,当从集群外部(外部)访问时,会将流量路由到我的集群。但是在服务器/云中没有 DNS 条目,我需要通过向 /etc/hosts 或类似的东西添加条目来在本地测试 Ingress 配置。
我在一个裸机教程中发现,将 HA 代理 IP 添加到 /etc/hosts 文件会将流量重定向到 kubernetes 集群。就像那样,将“ip_of_k8_cluster test.domain.com”添加到 /etc/hosts 尝试访问,如“curl http://test.domain.com/ ”,但 URL 不可访问。
如何验证(内部) Ingress 资源中的主机名,而无需主机的实际 DNS 条目。我想确保我的 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,它必须是 Ingress-Service 的External - IP。
并且Ingress-Serviceport
的andtargetPort
也必须是正确的(在您的情况下,对于您的 Ingress Service 侦听的那个)。port
80
targetPort
推荐阅读
- julia - 为什么我在 Julia 中的代码会因为更高的迭代而变慢?
- ubuntu - 如何删除 /usr/local/bin/docker-compose Ubuntu
- c# - 字节数据类型编译时抛出错误
- powerbi - 两个表的不同计数的 DAX 平均值
- c# - 如何在另一个方法中动态更改 textBlock 的内容?
- javascript - 为什么聊天小部件读取属性“样式”显示为空
- php - 做一个条件正则表达式
- angular - 无法使用 AgmMarkerSpiderModule
- python - python - 如何通过类似于curl的python中的post请求发送文件?(W3C 验证者)
- java - Apache Solr - 索引 ZIP 文件