멀티 클러스터 메시 온프레미스 설정

이 가이드에서는 여러 개의 VMware 및 베어메탈용 GKE로 Anthos Service Mesh를 설정하는 방법을 설명합니다. 이 프로세스를 확장하여 여러 개의 클러스터를 메시에 조인할 수 있습니다.

멀티 클러스터 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.9-asm asm
    

east-west 게이트웨이 설치

  1. east-west 트래픽 전용 cluster1에 게이트웨이를 설치합니다. 기본적으로 이 게이트웨이는 인터넷에 공개됩니다. 프로덕션 시스템에서는 외부 공격을 차단하기 위해 방화벽 규칙과 같은 추가 액세스 제한이 필요할 수 있습니다.

    asm/istio/expansion/gen-eastwest-gateway.sh \
    --mesh mesh1 --cluster cluster1 --network network1 --revision asm-198-6 | \
    istioctl --context="${CTX_CLUSTER1}" install -y -f -
    
  2. 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를 사용하는 서비스만 이러한 서비스에 액세스할 수 있습니다.

  1. cluster1의 east-west 게이트웨이를 통해 서비스를 노출합니다.

    kubectl --context="${CTX_CLUSTER1}" apply -n istio-system -f \
    asm/istio/expansion/expose-services.yaml
    
  2. cluster2의 east-west 게이트웨이를 통해 서비스를 노출합니다.

    kubectl --context="${CTX_CLUSTER2}" apply -n istio-system -f \
    asm/istio/expansion/expose-services.yaml
    

엔드포인트 검색 사용 설정

  1. cluster1의 API 서버에 대한 액세스를 제공하는 원격 보안 비밀을 cluster2에 설치합니다.

    istioctl x create-remote-secret \
    --context="${CTX_CLUSTER1}" \
    --name=cluster1 | \
    kubectl apply -f - --context="${CTX_CLUSTER2}"
    
  2. cluster2의 API 서버에 대한 액세스를 제공하는 원격 보안 비밀을 cluster1에 설치합니다.

    istioctl x create-remote-secret \
    --context="${CTX_CLUSTER2}" \
    --name=cluster2 | \
    kubectl apply -f - --context="${CTX_CLUSTER1}"
    

다음 단계