이 가이드에서는 여러 VMware용 GKE에서 Anthos Service Mesh를 설정하는 방법을 설명합니다. 이 프로세스를 확장하여 여러 개의 클러스터를 메시에 통합할 수 있습니다.
멀티 클러스터 Anthos Service Mesh 구성은 확장, 위치, 격리와 같은 중요한 기업 문제를 해결할 수 있습니다. 자세한 내용은 멀티 클러스터 사용 사례를 참조하세요. 또한 서비스 메시의 이점을 최대한 활용하려면 애플리케이션을 최적화해야 합니다. 자세한 내용은 Anthos Service Mesh용 애플리케이션 준비를 참조하세요.
이전 버전의 Anthos Service Mesh가 설치되어 있는 경우 Anthos Service Mesh VMware용 GKE 업그레이드를 참조하세요. 이 설치는 클러스터에 지원되는 기능을 사용 설정합니다.
요구사항
시작하기 전에 이 가이드에서는 온프레미스에 Anthos Service Mesh 설치에 설명된 단계에 따라 생성된 신규 또는 기존 클러스터를 사용 중이라고 가정합니다.
이 가이드의 요구사항은 온프레미스에 Anthos Service Mesh 설치에 나열된 요구사항에 추가로 적용됩니다.
클러스터에 설치된 Anthos Service Mesh 버전 1.8 이상 클러스터를 설치하거나 필수 버전으로 업그레이드하려면 온프레미스에 Anthos Service Mesh 설치를 참조하세요.
gkectl version
gkectl
이 설치되어 있지 않으면 GKE On-Prem 다운로드를 참조하세요.모든 클러스터가 vSphere의 GKE On-Prem에서 실행됩니다.
이전에 클러스터에 Anthos Service Mesh를 설치하는 데 사용된 구성 패키지가 필요합니다. 다른 사본이 필요한 경우 다음 명령어를 사용하여 다운로드할 수 있습니다.
kpt pkg get https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.8-asm .
구성 패키지에는 값을 설정할 필요가 없습니다.
east-west 게이트웨이 설치
east-west 트래픽 전용 cluster1에 게이트웨이를 설치합니다. 기본적으로 이 게이트웨이는 인터넷에 공개됩니다. 프로덕션 시스템에서는 외부 공격을 차단하기 위해 방화벽 규칙과 같은 추가 액세스 제한이 필요할 수 있습니다.
asm/istio/expansion/gen-eastwest-gateway.sh \ --mesh mesh1 --cluster cluster1 --network network1 --revision asm-186-8 | \ 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}"