【问题标题】:How to redirect traffic from hostname to a custom IP address in Kubernetes (AKS)?如何将流量从主机名重定向到 Kubernetes (AKS) 中的自定义 IP 地址?
【发布时间】:2020-05-31 14:51:55
【问题描述】:

我正在学习本教程: https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/

但它似乎不起作用,即使当我在 pod 内运行 cat /etc/hosts 时,我可以在那里看到我的主机名。有没有其他方法可以实现这一目标?我也尝试过使用 kube-dns,但这只会将流量重定向到自定义 DNS 服务器 IP 而不是普通服务器 IP?

我有一个带有单个 pod 的服务,我想将一个主机名重新连接到自定义 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

有什么想法或帮助吗?

【问题讨论】:

  • 如果你尝试curl -v yoursite.com你能在Trying...行的输出中看到正确的IP
  • 不,我没看到。
  • 你用的是什么图片?我已经用dnsutil 进行了测试,当我尝试curl 我的网址时,它会在hosts 文件中解析正确的IP

标签: azure kubernetes kube-dns


【解决方案1】:

这应该可行...无论如何,您可能知道这不是最佳做法...

无论如何,如果您连接到 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

【讨论】:

  • 但这会将请求路由到 DNS 服务器,对吗?然后我还需要一个 DNS 服务器。不过,我设法用 HostAliases 解决了这个问题,谢谢!
  • 是的。但是主机插件让我们覆盖它。无论如何,很高兴它已经为你工作了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-28
  • 1970-01-01
  • 2016-04-01
  • 1970-01-01
  • 2021-11-23
  • 2014-03-09
相关资源
最近更新 更多