天天看點

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自動注入

更多可以參考官網.

繼續閱讀