【问题标题】:intermittent pod communication issue间歇性吊舱通信问题
【发布时间】:2019-12-02 18:55:55
【问题描述】:

我有一个 Azure Kubernetes 集群,所有 pod 和服务都处于运行状态。我遇到的问题是,当我从 pod1 卷曲到 pod2 的服务 url 时,它会间歇性地失败,并出现无法解决主机错误。

为了说明,我有 3 个 pod - pod1、pod2、pod3 当我使用

进入 pod1

kubectl exec -it pod1

我使用 pod2 的服务 url 运行 curl:

卷曲http://api-batchprocessing:3000/result

该命令大约每 6/10 次成功一次,其余 4/10 次失败并出现错误“curl: (6) Could not resolve host:api-batchprocessing”。

当我尝试使用 curl 调用在 pod3 上运行的另一个服务时,我遇到了同样的问题。

我尝试了以下方法但没有成功: - 删除 kube-system 中的 coredns pod - 删除并重新创建 azure kubernetes 集群。 上面似乎暂时解决了它,但在几次尝试中,我得到了同样的间歇性“无法解决主机:”问题。

任何有关此问题的帮助/指针将不胜感激。

【问题讨论】:

  • 这些都在同一个命名空间中吗?
  • 是的,它们位于名为“开发”的同一个命名空间中
  • 当你 ssh 进入一个 pod 时,尝试从那里对另一个服务名称进行 nslookup,让我们看看这里的结果
  • 容器未安装实用程序。我一直在避免它,看来我需要这样做才能了解发生了什么......

标签: kubernetes azure-aks


【解决方案1】:

问题可能在于DNS 配置。 看起来 coredns 使用 DNS 服务器列表的方式与 kube-dns 不同。 如果您必须同时解析公共主机名和私有主机名,请始终只检查列表中的私有 DNS 服务器,或者找到正确的配置以将私有 DNS 查询路由到您的私有场所。

查找和解决问题的可能步骤:

  1. 打开 coredns 登录。

您唯一需要的就是这个YAML 文件:

apiVersion: v1
data:
  log.override: |
    log
kind: ConfigMap
metadata:
  labels:
    addonmanager.kubernetes.io/mode: EnsureExists
    k8s-app: kube-dns
    kubernetes.io/cluster-service: "true"
  name: coredns-custom
  namespace: kube-system
  1. 使用 kubectl 日志或 VSCode Kubernetes 扩展来打开/查看您的 coredns 日志。

  2. 附加到我们的一个环境 pod 并执行一些 DNS 解析操作,包括 nslookup 和 curl。 循环查询对 DNS 和网络组件施加压力的一些执行:

  3. 查看核心日志。

您之前会看到,curl 正在尝试通过尝试 A 和 AAAA 条目来解析 DNS,用于我们 pod 中定义的所有搜索域。换句话说,为了解决“api-batchprocessing”,curl 正在对 coredns 进行 DNS 查询。但是,coredns 正确响应“NXDOMAIN”(不存在)或“NOERROR”(找到记录)。所以问题出在其他地方。

  1. 在 VNET 级别配置 DNS 服务器

对这种随机 DNS 解析错误的可能解释是,在高负载情况下,coredns 正在 VNET 级别定义的所有 DNS 服务器上使用。 一些查询可能会发送到本地服务器。其他人,谷歌。 Google 不知道如何解析您的私有主机名。

  1. 从 VNET 中删除 Google DNS 服务器,重新启动集群并运行检查。

在这里您可以找到更多信息:random-dns-error

希望对你有帮助。

【讨论】:

  • 感谢 MaggieO 的详细回复。该问题可能与某些呼叫转到 VNET 并超时有关。我现在为 AKS 请求了一个新的 VNET,并将 DNS 服务器配置为 VNET 级别。希望这能解决问题。
  • 嗨 MaggieO,我使用 azure 网络重新创建了集群,它运行良好。感谢您的详细回答。
猜你喜欢
  • 1970-01-01
  • 2017-08-24
  • 1970-01-01
  • 2021-04-20
  • 2020-12-08
  • 2016-10-22
  • 2011-10-13
  • 2012-02-06
  • 1970-01-01
相关资源
最近更新 更多