Istioctl Check-Inject로 사이드카 인젝션 검증하기
Istioctl Check-Inject로 사이드카 인젝션 검증하기 (Verifying Istio Sidecar Injection with Istioctl Check-Inject)
istioctl experimental check-inject는 특정 웹훅이 여러분의 파드에서 Istio 사이드카 인젝션을 수행하는지 검증하는 데 도움을 주는 진단 도구예요. 이 도구를 사용해 사이드카 인젝션 구성이 라이브 클러스터에 올바르게 적용되었는지 확인할 수 있어요.
출처: Istio 문서
본문
빠른 시작 (Quick Start)
특정 파드에 Istio 사이드카 인젝션이 발생했는지/발생하지 않았는지(또는 발생할지/발생하지 않을지) 확인하려면 다음을 실행해요:
$ istioctl experimental check-inject -n <namespace> <pod-name>
배포(deployment)에 대해서는:
$ istioctl experimental check-inject -n <namespace> deploy/<deployment-name>
또는 라벨 쌍에 대해서는:
$ istioctl experimental check-inject -n <namespace> -l <label-key>=<label-value>
예를 들어 hello 네임스페이스에 httpbin이라는 배포가 있고, app=httpbin 라벨을 가진 httpbin-1234라는 파드가 있다면, 다음 명령들은 모두 동일해요:
$ istioctl experimental check-inject -n hello httpbin-1234
$ istioctl experimental check-inject -n hello deploy/httpbin
$ istioctl experimental check-inject -n hello -l app=httpbin
결과 예시:
WEBHOOK REVISION INJECTED REASON
istio-revision-tag-default default ✔ Namespace label istio-injection=enabled matches
istio-sidecar-injector-1-18 1-18 ✘ No matching namespace labels (istio.io/rev=1-18) or pod labels (istio.io/rev=1-18)
만약 INJECTED 필드가 ✔로 표시되면, 그 행의 웹훅이 인젝션을 수행한다는 뜻이고, 웹훅이 사이드카 인젝션을 수행하는 이유도 함께 보여줘요.
만약 INJECTED 필드가 ✘로 표시되면, 그 행의 웹훅이 인젝션을 수행하지 않는다는 뜻이고, 이유도 함께 표시돼요.
웹훅이 인젝션을 수행하지 않거나 인젝션에 오류가 발생하는 가능한 이유들:
일치하는 네임스페이스 라벨이나 파드 라벨이 없음: 네임스페이스나 파드에 올바른 라벨이 설정되어 있는지 확인해요.
특정 리비전에 대한 일치하는 네임스페이스 라벨이나 파드 라벨이 없음: 원하는 Istio 리비전과 일치하도록 올바른 라벨을 설정해요.
인젝션을 방지하는 파드 라벨: 해당 라벨을 제거하거나 적절한 값으로 설정해요.
인젝션을 방지하는 네임스페이스 라벨: 라벨을 적절한 값으로 변경해요.
사이드카를 인젝션하는 여러 웹훅: 인젝션을 위해 하나의 웹훅만 활성화되어 있는지 확인하거나, 특정 웹훅을 타깃팅하도록 네임스페이스나 파드에 적절한 라벨을 설정해요.
See also
Istioctl Analyze로 구성 진단하기 — istioctl analyze를 사용해 구성의 잠재적인 문제를 식별하는 방법.
Istioctl로 설치 — 심층 평가나 프로덕션 사용을 위해 어떤 Istio 구성 프로파일이든 설치하고 커스터마이즈하기.
Istioctl Describe로 메시 이해하기 — istioctl describe를 사용해 메시에 있는 파드의 구성을 검증하는 방법.
플랫 네트워크에서 Istio Ambient 모드로 Kubernetes 보안 강화 — 플랫 온프레미스 네트워크를 보호하기 위해 Istio Ambient 모드를 사용하는 방법.
Istio의 Kubernetes 네이티브 사이드카 — 새로운 SidecarContainers 기능을 Istio와 함께 데모하기.
원격 클러스터용 istioctl 구성 — 외부 컨트롤 플레인이 있는 메시에서 istioctl 명령을 지원하기 위해 프록시 서버 사용하기.