(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Istio】既存のnamespaceにistio-injection=enabledを付与する

スポンサーリンク

確認したこと

既に存在する名前空間に対して自動的にサイドカーが付与される設定を行った瞬間に

$ kubectl label namespace xx istio-injection=enabled

全Podにそれらが反映させるかを確認する。

環境情報
  • IKS v1.18.13
  • Debian GNU/Linux 9
  • istio-1.8.1

尚、付与されるIstioのコンテナイメージ情報は

$ kubectl -n istio-system get configmap istio-sidecar-injector

の中にある以下項目より確認可能。

image: "{{ .Values.global.hub }}/{{ .Values.global.proxy_init.image }}:{{ .Values.global.tag }}"

確認結果

以下のように標準出力に結果が返り

$ kubectl label namespace xx istio-injection=enabled
namespace/xx labeled

確かにlabelsに付与されるも

$ kubectl get ns xx -o=yaml
apiVersion: v1
kind: Namespace
metadata:
  creationTimestamp: ...
  labels:
    istio-injection: enabled
  name: xx
...
spec:
  finalizers:
  - kubernetes
status:
  phase: Active

即座にPodが更新されるわけではない。

$ kubectl get pod -n xx
NAME                          READY   STATUS      RESTARTS   AGE
test-pod          1/1     Running     1          ...

以下、補足です。

補足

下記のように手動でYAMLを生成することも可能ですが

名前空間全体に付与すれば自動的にサイドカーが付与されます。

labelsを変えただけではPodに反映されませんが、Podを再起動させると

$ kubectl get pod -n x
NAME                          READY   STATUS      RESTARTS   AGE
test-pod           2/2     Running     0          2m13s

コンテナが付与されて上がってきます。

ちなみに同Podを管理するDeploymentをeditとして以下を付与すると

spec:
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "false"

即時にサイドカーは外れます。

以上です。