이 가이드에서는 여러 개의 VMware 및 베어메탈용 GKE로 Anthos Service Mesh를 설정하는 방법을 설명합니다. 이 프로세스를 확장하여 여러 개의 클러스터를 메시에 조인할 수 있습니다.
이 가이드에서는 Anthos Service Mesh 온프레미스 설치에서 제공된 단계를 이용하여 VMware 또는 베어메탈용 GKE를 이미 설치했다고 가정합니다.
이전 버전의 Anthos Service Mesh가 설치되어 있는 경우 온프레미스에서 Anthos Service Mesh 업그레이드를 참조하세요.
이 가이드에서는 클러스터를 network1
의 cluster1
및 network2
의 cluster2
로 지칭합니다. 또한 환경 변수를 사용하여 클러스터 컨텍스트를 CTX_CLUSTER1
및 CTX_CLUSTER2
로 정의합니다.
멀티 클러스터 Anthos Service Mesh 구성은 확장, 위치, 격리와 같은 중요한 기업 문제를 해결할 수 있습니다. 자세한 내용은 멀티 클러스터 사용 사례를 참조하세요. 또한 서비스 메시의 이점을 최대한 활용하려면 애플리케이션을 최적화해야 합니다. 자세한 내용은 Anthos Service Mesh용 애플리케이션 준비를 참조하세요.
요구사항
시작하기 전에 이 가이드에서는 온프레미스에 Anthos Service Mesh 설치에 설명된 단계에 따라 생성된 신규 또는 기존 클러스터를 사용 중이라고 가정합니다.
이 가이드의 요구사항은 온프레미스에 Anthos Service Mesh 설치에 나열된 요구사항에 추가로 적용됩니다.
이전에 클러스터에 Anthos Service Mesh를 설치하는 데 사용된 구성 패키지가 필요합니다. 다른 사본이 필요한 경우 다음 명령어를 사용하여 다운로드할 수 있습니다.
kpt pkg get \ https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.10-asm asm
east-west 게이트웨이 설치
east-west 트래픽 전용 cluster1에 게이트웨이를 설치합니다. 기본적으로 이 게이트웨이는 인터넷에 공개됩니다. 프로덕션 시스템에서는 외부 공격을 차단하기 위해 방화벽 규칙과 같은 추가 액세스 제한이 필요할 수 있습니다.
asm/istio/expansion/gen-eastwest-gateway.sh \ --mesh mesh1 --cluster cluster1 --network network1 --revision asm-1106-2 | \ istioctl --context="${CTX_CLUSTER1}" install -y -f -
cluster2에 cluster1의 east-west 트래픽 전용 게이트웨이를 설치합니다.
/asm/istio/expansion/gen-eastwest-gateway.sh \ --mesh mesh1 --cluster cluster2 --network network2 | \ istioctl --context="${CTX_CLUSTER2}" install -y -f -
노출 중인 서비스
클러스터가 별도의 네트워크에 있으므로 두 클러스터의 east-west 게이트웨이에 모든 서비스(*.local
)를 노출해야 합니다. 이 게이트웨이는 인터넷에서는 공개 상태지만, 마치 동일한 네트워크에 있는 것처럼 신뢰할 수 있는 mTLS 인증서와 워크로드 ID를 사용하는 서비스만 이러한 서비스에 액세스할 수 있습니다.
cluster1의 east-west 게이트웨이를 통해 서비스를 노출합니다.
kubectl --context="${CTX_CLUSTER1}" apply -n istio-system -f \ asm/istio/expansion/expose-services.yaml
cluster2의 east-west 게이트웨이를 통해 서비스를 노출합니다.
kubectl --context="${CTX_CLUSTER2}" apply -n istio-system -f \ asm/istio/expansion/expose-services.yaml
엔드포인트 검색 사용 설정
cluster1의 API 서버에 대한 액세스를 제공하는 원격 보안 비밀을 cluster2에 설치합니다.
istioctl x create-remote-secret \ --context="${CTX_CLUSTER1}" \ --name=cluster1 | \ kubectl apply -f - --context="${CTX_CLUSTER2}"
cluster2의 API 서버에 대한 액세스를 제공하는 원격 보안 비밀을 cluster1에 설치합니다.
istioctl x create-remote-secret \ --context="${CTX_CLUSTER2}" \ --name=cluster2 | \ kubectl apply -f - --context="${CTX_CLUSTER1}"