繁体   English   中英

如何将流量从主机名重定向到 Kubernetes (AKS) 中的自定义 IP 地址?

[英]How to redirect traffic from hostname to a custom IP address in Kubernetes (AKS)?

我正在关注本教程: 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 的服务,我想将一个主机名重新连接到 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM