Istio - Sidecar Injection

목차

참고

Istio Sidecar injection

Istio는 Pod 안에 Envoy proxy container 를 Sidecar 패턴으로 생성하여 Service Mesh (discovery, connect, monitor) 를 합니다. Pod안에 Proxy container를 삽입하는것을 Sidecar Injection 이라고 부릅니다.

Istio 에서 Sidecar Injection 은 Kubernetes 의 MutatingAdmissionWebhook 을 사용하여 구현됩니다. 이것은 Kubernetes의 API Server에 대한 요청 처리 중에 사용되며, 새로운 Pod가 생성될 때 Istio가 Sidecar Proxy 컨테이너를 자동으로 추가하는 것을 가능하게 합니다.

Istio가 Sidecar를 주입하는 방식은 크게 두 가지 방법이 있습니다. 첫 번째는 자동 주입 방식으로, 이는 기존의 Kubernetes 오브젝트에 Istio의 Sidecar Proxy를 자동으로 추가합니다. 이를 위해서는 Istio의 설치 시 Kubernetes 리소스를 수정해야 합니다. 두 번째 방식은 수동 주입 방식으로, 이는 기존의 Kubernetes 오브젝트에 Istio의 Sidecar Proxy를 수동으로 추가해야 합니다.

Sidecar 자동 주입 방식

kubectl label ns <namespace> istio-injection=enabled

Envoy 프록시 생성 확인

생성된 Pod 내에서 istio-proxy Container 가 생성된 것을 확인할 수 있다.

Containers:
istio-proxy:
Container ID: containerd://cfcaaef4b26c5dc0083b88e3e4e2464c5b2fb0e2d9d9288a7891d66c577db127
Image: docker.io/istio/proxyv2:1.14.1
Image ID: docker.io/istio/proxyv2@sha256:df69c1a7af7c0113424a48f5075ac6d0894123ec926fdb315e849b4f04e39616
Port: 15090/TCP
Host Port: 0/TCP

Sidecar 자동 주입 방식 제거

kubectl label ns <namespace> istio-injection-
kubectl get mutatingwebhookconfiguration -o yaml
NAME                            WEBHOOKS   AGE
istio-sidecar-injector 4 313d
Share