【问题标题】:Clean Ambassador Edge Stack install on GKE fails with DNS resolving在 GKE 上安装 Clean Ambassador Edge Stack 失败并解析 DNS
【发布时间】:2022-01-04 21:57:50
【问题描述】:

我们正在测试 Ambassador Edge Stack,并开始使用处于自动驾驶模式的全新 GKE 私有集群。

我们按照快速入门教程从头开始安装以了解它并最终出现以下错误

Error from server: error when creating "mapping-test.yaml": conversion webhook for getambassador.io/v3alpha1, Kind=Mapping failed: Post "https://emissary-apiext.emissary-system.svc:443/webhooks/crd-convert?timeout=30s": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

我们进行了几轮 DNS 测试,并在不同的命名空间中部署了几个不同的测试 pod,以验证 kube-dns 是否正常工作,一切看起来都很好。 resolv.conf 看起来也不错。

大使使用的主机名emissary-apiext.emissary-system.svc:443(没有cluster.local)应该可以正常解析。顺便说一句,使用 FQN(使用 cluster.local)进行查找效果很好。

有什么线索吗?

非常感谢,保重。

【问题讨论】:

    标签: kubernetes dns google-kubernetes-engine kubernetes-ingress ambassador


    【解决方案1】:

    我想我找到了解决方案,如果以后有人遇到此问题,请在此处发布。

    所以我跟着this 在 Autopilot 私有集群中部署了 Ambassador Edge Stack。我在尝试部署 Mapping 对象时遇到了同样的错误(步骤 2.2)。

    问题是控制平面(API 服务器)正在尝试调用 emissary-apiext.emissary-system.svc:443,但它后面的 pod 正在侦听端口 8443(通过描述服务来解决这个问题)。

    所以我添加了一条防火墙规则,以允许 GKE 控制平面与端口 443 上的节点通信。

    有问题的防火墙规则称为 gke-gke-ap-xxxxx-master。 xxxx 称为集群哈希,每个集群都不同。为确保您正在编辑正确的规则,请仔细检查源 IP 范围是否与集群详细信息页面中的“控制平面地址范围”匹配。并且是以master结尾的规则。

    只需编辑该规则并将 8443 添加到 tcp 端口即可。它应该工作

    【讨论】:

      【解决方案2】:

      这听起来像是与 GKE Autopilot 中的 webhook 限制有关的问题

      您使用的是哪个版本的 GKE?

      此外,我们允许 webhook 拦截的资源和命名空间也存在限制

      此外,指定以下一项或多项的 webhook 规则中的资源(及其任何子资源)将 拒绝:

      • 组:“”资源:节点
      • 组:“”资源:持久卷
      • 组:certificates.k8s.io 资源:certificatesigningrequests
      • 组:authentication.k8s.io 资源:tokenreviews

      您可能必须检查 Ambassador Edge Stack 的清单才能弄清楚这一点。

      【讨论】:

      • 感谢@botrfsbel,老实说,从未听说过它们的局限性。版本为1.21.5-gke.1302 还将检查清单以获取更多详细信息...一旦我检查过,请回复您。
      • 嘿@boredabdel,刚刚用一个新的标准集群做了一个快速测试,结果很好。我对 CRD 不是很熟悉,并且在他们的清单 https://app.getambassador.io/yaml/edge-stack/latest/aes-crds.yaml 中快速搜索了那些没有任何运气的 api 组。还有什么想法吗? :)
      • 嘿@boredabdel,看来你是对的——至少我在经典集群上成功安装了。我还联系了大使开发团队,他们似乎没有意识到这个问题。一旦我知道那里发生了什么,我会立即向他们提交错误。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-03
      • 2020-09-18
      • 2012-02-22
      • 1970-01-01
      • 1970-01-01
      • 2020-05-21
      • 1970-01-01
      相关资源
      最近更新 更多