天天看点

Istio使用【sidecar注入】

本文使用的版本号:1.4.2

可以看出,istio默认sidecar注入规则是,namespace带有标签istio-injection: enabled才会注入sidecar。

查看哪些namespace已经配置注入:

为namespace打上注入sidecar标签:

 默认情况,是没有设置。

有些k8s系统组件namespace不应该注入sidecar,如kube-system等,参考如下设置

为namespace打上不注入sidecar标签:

sidecar配置保存在configmap-istio-sidecar-injector中,更多配置可以在install/kubernetes/helm/istio/charts/sidecarInjectorWebhook/values.yaml中查看。

主要配置,默认策略:

允许的值为<code>disabled</code>和<code>enabled</code>。仅当Webhook <code>namespaceSelector</code>匹配目标名称空间时,才应用默认策略。无法识别的策略导致注入被完全禁用。

注意:①策略为<code>disabled</code>,但是想要为POD注入sidecar,增加annotation sidecar.istio.io/inject: "true"即可

  ②策略为<code>enabled</code>,但是不想要为POD注入sidecar,增加annotation sidecar.istio.io/inject: "false"即可

为一个写好的yaml文件手动注入sidecar,我们可以使用<code>istioctl kube-inject:</code>

默认情况下,这将使用集群内配置。或者,可以使用配置的本地副本来完成注入。下面命令可以将默认配置导出到文件:

然后再将文件中配置注入到已建好的YAML中并运行:

 这和第一条命令效果一样。验证sidecar已经注入:

示例:

如果POD配置了注解、neverInjectSelector/alwaysInjectSelector也都配置了,默认策略也配置了,那么他们之间的优先级参考如下:

Pod Annotations → NeverInjectSelector → AlwaysInjectSelector → Default Policy

卸载istio中sidecar组件

删除某个namespace自动注入

更多可以参考官网.

继续阅读