[英]How to redirect traffic from hostname to a custom IP address in Kubernetes (AKS)?
但它似乎不起作用,即使当我在 pod 内运行 cat /etc/hosts 时,我可以在那里看到我的主机名。 有没有其他方法可以实现这一目标? 我也尝试使用 kube-dns,但这只会将流量重定向到自定义 DNS 服务器 IP 而不是普通服务器 IP?
我有一个带有单个 pod 的服务,我想将一个主机名重新连接到 go 到自定义 IP 地址以进行测试。
nslookup 给出:
root@manager-admin-5944869775-x59n5:/app# nslookup xxxxx.azure-devices.net
Server: 10.0.0.10
Address: 10.0.0.10#53
Non-authoritative answer:
xxxxx.azure-devices.net canonical name = ihsu-prod-bl-004.cloudapp.net.
Name: ihsu-prod-bl-004.cloudapp.net
Address: 137.117.83.38
虽然主机是:
root@manager-admin-5944869775-x59n5:/app# cat /etc/hosts
# Kubernetes-managed hosts file.
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
fe00::0 ip6-mcastprefix
fe00::1 ip6-allnodes
fe00::2 ip6-allrouters
10.244.2.104 manager-admin-5944869775-x59n5
40.84.159.16 xxxxx.azure-devices.net
有什么想法或帮助吗?
那应该可行...无论如何,您可能知道这不是最佳实践...
无论如何,如果您连接到 IP “telnet 40.84.159.16 80”,请先尝试(如果没有,则必须安装 telnet,如果 80 是您要调用的端口)。 例如,可能是集群的出站连接或您尝试连接的服务的传入连接的防火墙问题。
但是,如果您不能...尝试使用您在主机插件中提到的core-dns 。
作为最后的手段,您可以在 Pod 上指定一个 DNS 名称服务器,该名称服务器会修改 pod 的 /etc/resolv.conf 文件(您也可以使用 CoreDNS 执行此操作)。
当然,最后一种方法依赖于您可以修改您的 DNS 条目,并且您不会有任何 DNS 冲突,这肯定会出现......
apiVersion: v1
kind: Pod
metadata:
namespace: default
name: dns-example
spec:
containers:
- name: test
image: nginx
dnsPolicy: "None"
dnsConfig:
nameservers:
- 1.2.3.4
searches:
- ns1.svc.cluster-domain.example
- my.dns.search.suffix
options:
- name: ndots
value: "2"
- name: edns0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.