Istio CNI 노드 에이전트 설치
Istio CNI 노드 에이전트 설치 (Install the Istio CNI Node Agent)
운영자가 더 낮은 권한으로 워크로드를 배포할 수 있게 해주는 Istio CNI 노드 에이전트를 설치하고 사용하는 방법을 설명하는 문서예요.
출처: Istio 문서
본문
CNI 노드 에이전트란?
기본적으로 Istio는 사이드카를 주입할 때 파드에 NET_ADMIN과 NET_RAW capability를 요구하는 istio-init init 컨테이너를 사용해 트래픽을 리다이렉트해요. 이는 파드를 배포하는 사용자/서비스 어카운트가 높은 권한을 가져야 한다는 뜻이에요.
Istio CNI 노드 에이전트는 트래픽 리다이렉션을 Kubernetes CNI 수준에서 처리해서, 애플리케이션 파드와 사용자가 NET_ADMIN/NET_RAW capability 없이도 사이드카를 사용할 수 있게 해줘요. 이는 Pod 보안 정책을 적용하는 클러스터에서 특히 유용해요.
설치 (Install)
다음 명령으로 CNI를 활성화해서 Istio를 설치할 수 있어요:
$ istioctl install --set components.cni.enabled=true
또는 Helm을 사용해:
$ helm install istio-cni istio/cni -n istio-system
설치 후 CNI 에이전트가 실행되는지 확인해요:
$ kubectl get pods -n istio-system -l k8s-app=istio-cni-node
사용 (Usage)
CNI가 활성화되면 파드가 생성될 때 CNI 플러그인이 트래픽 리다이렉션을 설정해요. 애플리케이션은 별도의 init 컨테이너 없이도 메시 트래픽이 프록시를 통과하게 돼요.
프로파일 요구 사항
CNI 노드 에이전트의 DaemonSet은 네트워크 관련 권한이 필요하며, 이를 배포하는 네임스페이스(기본 istio-system)는 privileged 정책을 사용해야 할 수 있어요.
See also
Istio CNI 플러그인 트러블슈팅 — CNI 플러그인 관련 문제 진단.
Pod 보안 승인(Pod Security Admission)으로 Istio 설치 — PSA와 함께 Istio를 설치하는 방법.