繁体   English   中英

通过 AKS dns 将 Azure 容器实例与 AKS pod 连接起来

[英]Connecting Azure Container instances with AKS pods via the AKS dns

我无法从 Azure 容器实例访问 k8s 中的 DNS 服务器

语境:

我在 Azure AKS Kubernetes 集群中有 2 个 pod。

Pod1:名称 = pod1,内部 IP = 10.34.33.112

Pod2:名称 = pod2,内部 IP = 10.34.33.155,集群 IP = 10.34.104.109

AKS DNS 服务 ip = 10.34.96.58

所以,从 pod1,我希望nslookup pod2会返回

(这按预期工作)

/ # nslookup pod2
Server:     10.34.96.58
Address:    10.34.96.58:53

Name:   pod2.default.svc.cluster.local
Address: 10.34.104.109

Azure 容器实例:当我从容器实例运行命令时,ping 到 pod2 的内部 IP 有效。

这是因为它们通过网络配置文件位于同一个虚拟网络中

# ping 10.34.33.155
PING 10.34.33.155 (10.34.33.155): 56 data bytes
64 bytes from 10.34.33.155: seq=0 ttl=63 time=2.208 ms
64 bytes from 10.34.33.155: seq=1 ttl=63 time=1.101 ms

然而,

# nslookup pod2.default.svc.cluster.local 10.34.96.42
;; connection timed out; no servers could be reached

即使我为 pod 指定了名称服务器和完整的 url,也无法访问。 我无法确定阻塞发生的位置。

有任何想法吗? 或最佳实践?

我很确定 AKS dns 服务只能在集群内使用。

这是我要做的:

  • 我会将私有 DNS 区域与 AKS 集群的虚拟网络相关联。
  • 我还将 Azure 容器实例部署到同一个网络中。
  • 我将在步骤 1 中的私有 DNS 区域中为所需的私有 IP 地址添加 A 记录。

第三步是您可以手动执行的操作,也可以在每次部署时自动执行,方法是使用 Azure CLI 任务扩展部署脚本,您可以在其中配置 Azure 私有 DNS 区域记录。 这取决于您的情况:这是一个 POC 还是纯粹的运营项目,或者更像是一个不断发展的、带有 CI/CD 的 DevOps 繁重的环境等等。

注意:我不太了解您的业务需求,但我怀疑您是否真的想使用服务 IP 而不是 pod IP。 但也有例外,所以如果你知道你在做什么,请忽略我:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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