Istio 1.0 不会在 Kubernetes 1.9.3 上将 envoy 代理注入 pods

Istio 1.0 does not inject envoy proxy to pods on Kubernetes 1.9.3

我有 Kubernetes 1.9.3 集群并在其上部署了 Istio 1.0.12。使用 istio-injection=enabled 创建一个命名空间,并在该命名空间中创建一个部署。我没有看到特使代理自动注入到部署创建的 pods 中。

Istio 调用 kube-apiserver 将 envoy 代理注入 pods。需要在 kube-apiserver 中启用两个插件才能使代理注入工作。

kube-apiserver 作为静态 Pod 运行,Pod 清单可在 /etc/kubernetes/manifests/kube-apiserver.yaml 获得。如下所示更新行以包含 MutatingAdmissionWebhookValidatingAdmissionWebhook 插件(自 Kubernetes 1.9 起可用)。

- --admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota

kubelet 将检测到更改并自动重新创建 kube-apiserver pod。