根据上述启用Sidecar自动注入的规则,enableNamespacesByDefault设置为false时,命名空间中设置了标签istio-injection并且值为enabled,才会启用Sidecar自动注入。
执行以下命名可以为命名空间default增加标签istio-injection且值设为enabled:
kubectl label namespace default istio-injection=enabled
至此,命名空间default已经支持Sidecar自动注入,运行如下命令等同于前面文章中介绍的手工注入,系统会自动注入Envoy容器作为Sidecar:
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
具体来说,是否进行Sidecar自动注入取决于以下三个条件:
·Webhook的namespaceSelector机制。
·默认策略。
·每个pod的可覆盖注解。
表3-1展示了基于三个条件变量的最终的注入状态。
表3-1 基于三个条件变量的最终的注入状态
