无法创建 pods - 调用 webhook 失败 "sidecar-injector.istio.io"

can't create pods - failed calling webhook "sidecar-injector.istio.io"

Kubernetes 版本:1.17.14-gke.400

我在使用 istio 设置创建 pods 时遇到问题,我从 sidecar 注入器收到超时错误。

我用这个命令设置了 istio (1.8.1):

istioctl install --set profile=minimal \
 --set values.cni.cniBinDir=/home/kubernetes/bin \
 --set 'values.cni.excludeNamespaces[0]'=kube-system \
 --set 'values.cni.excludeNamespaces[1]'=istio-system \
 --set 'values.cni.excludeNamespaces[2]'=backend \
 --set components.cni.enabled=true \
 --set components.cni.namespace=kube-system

然后,当我尝试部署睡眠示例时,我遇到了这两个错误之一 kubectl apply -f samples/sleep/sleep.yaml

Error creating: Internal error occurred: failed calling webhook "sidecar-injector.istio.io": Post https://istiod.istio-system.svc:443/inject?timeout=30s: context deadline exceeded

Error creating: Internal error occurred: failed calling webhook "sidecar-injector.istio.io": Post https://istiod.istio-system.svc:443/inject?timeout=30s: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

我确实启用了网络策略,但我在 istio-system 的 kube-system 中没有任何设置。此外,当我卷曲该端点时,出现 400 错误。

从 GKE 1.16 升级到 1.17 存在一个已知问题。在升级到 1.17 期间,您在 istio-system 命名空间中创建的任何自定义资源都将被删除。必须手动重新创建这些资源。我们建议在修复推出之前不要将带有 Istio 附加组件的集群升级到 1.17。该问题仅在升级期间出现,因此新集群不受影响。查看此 release notes 了解更多详情。

我的问题原来是我需要更新防火墙规则以添加端口 15017,即使我没有私有集群:https://istio.io/latest/docs/setup/platform-setup/gke/