Seb*_*ian 3 dns kubernetes google-kubernetes-engine kubernetes-ingress ambassador
我们正在测试大使边缘堆栈,并从自动驾驶模式下的全新 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)
Run Code Online (Sandbox Code Playgroud)
我们进行了几轮 DNS 测试,并在不同的命名空间中部署了几个不同的测试 Pod,以验证 kube-dns 是否正常工作,最终一切看起来都很好。resolv.conf 看起来也不错。
大使正在使用主机名emissary-apiext.emissary-system.svc:443
(不带 cluster.local),应该可以正常解析。顺便说一句,使用 FQN(使用 cluster.local)进行查找效果很好。
有什么线索吗?
非常感谢并保重。
小智 6
我想我找到了解决方案,如果以后有人遇到这个问题,我会在这里发布。
因此,我按照此方法在 Autopilot 专用集群中部署大使 Edge Stack。当我尝试部署映射对象(步骤 2.2)时,我遇到了同样的错误。
问题是控制平面(API 服务器)正在尝试调用 emissary-apiext.emissary-system.svc:443,但其后面的 pod 正在侦听端口 8443(通过描述服务发现这一点)。
因此,我添加了一条防火墙规则,以允许 GKE 控制平面与端口 443 上的节点进行通信。
有问题的防火墙规则称为gke-gke-ap-xxxxx-master。xxxx 称为集群哈希,每个集群都不同。为了确保您编辑的是正确的规则,请仔细检查源 IP 范围是否与集群详细信息页面中的“控制平面地址范围”匹配。这是一个名称以 master 结尾的规则。
只需编辑该规则并将 8443 添加到 tcp 端口即可。应该有效
归档时间: |
|
查看次数: |
1761 次 |
最近记录: |