Anthos Service Mesh는 사이드카 프록시를 사용하여 네트워크 보안, 안정성, 관측 가능성을 개선합니다. 이러한 기능이 애플리케이션의 기본 컨테이너에서 추상화되고 동일한 pod에서 별도의 컨테이너로 제공되는 프로세스 외부의 공통 프록시로 구현됩니다. 여기서는 서비스 메시에 참여하도록 프로덕션 애플리케이션을 재설계하지 않아도 Anthos Service Mesh의 기능을 제공합니다.
Anthos Service Mesh가 워크로드의 Pod에 구성한 네임스페이스 라벨을 감지하면 자동 사이드카 프록시 삽입이 발생합니다. 프록시는 워크로드에 대한 모든 인바운드 및 아웃바운드 트래픽을 가로채고 Anthos Service Mesh와 통신합니다.
자동 사이드카 삽입 사용 설정
권장되는 사이드카 프록시 삽입 방법은 Pod의 Kubernetes 구성을 수동으로 업데이트할 수 있도록 웹훅 기반 자동 사이드카 인젝터를 사용하는 것입니다. 기본적으로 사이드카 자동 삽입은 모든 네임스페이스에서 사용 중지되어 있습니다.
자동 사이드카 삽입을 사용 설정하려면 다음 안내를 따르세요.
다음 명령어를 사용하여
istiod
에서 이후 단계에서 사용할 버전 라벨 값을 포함하는 라벨을 찾습니다.kubectl -n istio-system get pods -l app=istiod --show-labels
결과는 다음과 유사합니다.
NAME READY STATUS RESTARTS AGE LABELS istiod-asm-173-3-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-173-3,istio=istiod,pod-template-hash=5788d57586 istiod-asm-173-3-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-173-3,istio=istiod,pod-template-hash=5788d57586
출력의
LABELS
열 아래에서istio.io/rev=
프리픽스 다음에 있는istiod
버전 라벨의 값을 확인합니다. 이 예시에서 값은asm-173-3
입니다.버전 라벨을 네임스페이스에 적용합니다. 다음 명령어에서 NAMESPACE는 사이드카 삽입을 수행할 네임스페이스의 이름이고 REVISION은 이전 단계에서 기록한
istiod
버전 라벨입니다.kubectl label namespace NAMESPACE istio-injection- istio.io/rev=REVISION --overwrite
다음 섹션의 단계를 사용하여 영향을 받는 Pod를 다시 시작합니다.
pod를 다시 시작하여 사이드카 프록시 업데이트
자동 사이드카 삽입을 사용하면 pod를 다시 시작하여 기존 pod의 사이드카를 업데이트할 수 있습니다.
pod를 다시 시작하는 방법은 pod가 배포의 일부로 생성되었는지에 따라 달라집니다.
배포를 사용한 경우 사이드카가 있는 모든 pod가 다시 시작되도록 배포를 다시 시작합니다.
kubectl rollout restart deployment -n YOUR_NAMESPACE
배포를 사용하지 않은 경우, pod를 삭제하면 사이드카로 자동으로 재생성됩니다.
kubectl delete pod -n YOUR_NAMESPACE --all
네임스페이스의 모든 pod에 사이드카가 삽입되어 있는지 확인합니다.
kubectl get pod -n YOUR_NAMESPACE
위 명령어의 결과로 반환된 다음 출력 예시의 경우
READY
열에서 각 워크로드마다 컨테이너가 2개(기본 컨테이너와 사이드카 프록시 컨테이너)가 있다는 것을 확인할 수 있습니다.NAME READY STATUS RESTARTS AGE YOUR_WORKLOAD 2/2 Running 0 20s ...
다음 단계
다음에 대해 자세히 알아보기