현대화를 위한 구성 업데이트
이 문서에서는 메시를 ISTIOD
컨트롤 플레인에서 TRAFFIC_DIRECTOR
컨트롤 플레인으로 현대화하기 전에 관리형 Cloud Service Mesh에 적용해야 할 수 있는 구성 업데이트를 설명합니다.
현대화 워크플로에 관한 자세한 내용은 관리형 컨트롤 플레인 현대화 페이지를 참고하세요.
Istio 보안 비밀에서 multicluster_mode로 마이그레이션
클러스터에서 TRAFFIC_DIRECTOR
컨트롤 플레인을 사용하는 경우 멀티 클러스터 보안 비밀은 지원되지 않습니다. 이 문서에서는 Istio 멀티 클러스터 보안 비밀 사용에서 multicluster_mode
사용으로 현대화하는 방법을 설명합니다.
Istio 보안 비밀과 선언적 API 개요
오픈소스 Istio 멀티 클러스터 엔드포인트 검색은 istioctl
또는 기타 도구를 사용하여 클러스터에 Kubernetes 보안 비밀을 만드는 방식으로 작동합니다. 이 보안 비밀을 사용하면 클러스터가 메시의 다른 클러스터로 트래픽 부하를 분산할 수 있습니다. 그러면 ISTIOD
컨트롤 플레인에서 이 보안 비밀을 읽고 다른 클러스터로 트래픽 라우팅을 시작합니다.
Cloud Service Mesh에는 Istio 보안 비밀을 직접 만드는 대신 멀티 클러스터 트래픽을 제어하는 선언적 API가 있습니다. 이 API는 Istio 보안 비밀을 구현 세부정보로 취급하며 Istio 보안 비밀을 수동으로 만드는 것보다 안정적입니다. 향후 Cloud Service Mesh 기능은 선언적 API에 종속되며 Istio 보안 비밀로 이러한 새 기능을 직접 사용할 수 없습니다. 선언적 API는 앞으로 지원되는 유일한 경로입니다.
Istio 보안 비밀을 사용하는 경우 선언적 API를 사용하는 것으로 최대한 빨리 마이그레이션하세요. multicluster_mode
설정은 각 클러스터가 메시의 다른 모든 클러스터로 트래픽을 전달하도록 지시합니다. 보안 비밀을 사용하면 더 유연하게 구성할 수 있으므로 각 클러스터에 대해 메시에서 트래픽을 전달할 다른 클러스터를 구성할 수 있습니다.
선언적 API와 Istio 보안 비밀의 지원되는 기능 간의 차이점의 전체 목록은 Istio API를 사용하는 지원 기능을 참고하세요.
Istio 보안 비밀에서 선언적 API로 마이그레이션
Fleet 기능 API를 사용하여 자동 관리를 통해 Cloud Service Mesh를 프로비저닝한 경우 이 안내를 따르지 않아도 됩니다.
이 단계는 asmcli --managed
를 사용하여 온보딩한 경우에만 적용됩니다.
이 프로세스는 클러스터를 가리키는 보안 비밀을 변경합니다. 이 과정에서 엔드포인트가 삭제되었다가 다시 추가됩니다. 엔드포인트가 삭제되고 추가되는 사이에 트래픽이 다른 클러스터로 부하 분산되는 대신 잠시 로컬 라우팅으로 되돌아갑니다. 자세한 내용은 GitHub 문제를 참고하세요.
Istio 보안 비밀 사용에서 선언적 API로 전환하려면 다음 단계를 따르세요. 다음 단계를 동시에 또는 연속으로 실행합니다.
multicluster_mode=connected
를 설정하여 멀티 클러스터 엔드포인트 검색을 사용 설정하려는 Fleet의 각 클러스터에 선언적 API를 사용 설정합니다. 클러스터를 검색할 수 없도록 하려면multicluster_mode=disconnected
를 명시적으로 설정해야 합니다.다음 명령어를 사용하여 멀티 클러스터 엔드포인트 검색을 위한 클러스터를 선택합니다.
kubectl patch configmap/asm-options -n istio-system --type merge -p '{"data":{"multicluster_mode":"connected"}}'
다음 명령어를 사용하여 클러스터에서 엔드포인트 검색을 선택 해제합니다.
kubectl patch configmap/asm-options -n istio-system --type merge -p '{"data":{"multicluster_mode":"disconnected"}}'
이전 보안 비밀을 삭제합니다.
클러스터에서
multicluster_mode=connected
를 설정하면 각 클러스터에multicluster_mode=connected
가 설정된 다른 모든 클러스터에 대해 새 보안 비밀이 생성됩니다. 보안 비밀은 istio-system 네임스페이스에 배치되며 다음 형식입니다.istio-remote-secret-projects-PROJECT_NAME-locations-LOCATION-memberships-MEMBERSHIPS
각 보안 비밀에
istio.io/owned-by: mesh.googleapis.com
라벨도 적용됩니다.새 보안 비밀이 생성되면
istioctl create-remote-secret
으로 수동으로 만든 보안 비밀을 삭제할 수 있습니다.kubectl delete secret SECRET_NAME -n istio-system
마이그레이션이 완료되면 요청 측정항목을 확인하여 예상대로 라우팅되는지 확인합니다.