클러스터에 여러 하이브리드 조직 추가

이 주제에서는 두 번째 Apigee Hybrid 조직을 기존 Kubernetes 클러스터에 추가하는 방법을 설명합니다. 이 멀티 조직 구성에서는 두 조직 모두 같은 Cassandra 링을 사용하고 공유합니다. 조직마다 여러 환경 및 환경 그룹이 구성될 수 있습니다.

제한사항

클러스터별 다중 조직 구성은 다음 제한 사항과 함께 지원됩니다. 이러한 제한사항이 완화될 때까지 이 구성을 사용하지 않는 것이 좋습니다.

  • Apigee Hybrid 인스턴스를 여러 개 사용하려면 인스턴스마다 고유한 클러스터가 있어야 합니다. 동일한 Kubernetes 클러스터에서 실행되는 여러 Apigee Hybrid 인스턴스에서는 불안정 문제가 발생하여 다운타임이 발생할 수 있습니다.
  • 포드의 모든 로깅은 구성된 첫 번째 Google Cloud 프로젝트로 전송됩니다. 이러한 제한은 Cloud Logging 도구에서 가장 두드러집니다. 다른 Apigee 조직의 로그는 일치하는 Google Cloud 프로젝트로 전송되지 않습니다. 로그는 계속 포드 수준에서 캡처되며 kubectl 명령어로 가져올 수 있습니다. 하지만 Cloud Logging을 통해 올바른 Cloud 프로젝트로 전송되지 않습니다.
  • 조직 하나의 Cassandra 데이터베이스에서 조직 데이터를 삭제할 수 없습니다. 즉, 조직을 선택적으로 삭제할 수 없습니다. 데이터베이스 구성을 수정하면 해당 클러스터에 배포된 모든 조직이 영향을 받습니다.
  • 하이브리드 업그레이드 절차는 전체 클러스터를 한 번에 모두 업그레이드합니다.
  • 백업과 복원은 클러스터로 수행되며 특정 조직에 대해 수행될 수 없습니다.
  • Apigee API 모니터링 기능(타임라인, 최근, 조사)은 구성 및 배포된 첫 번째 조직에서만 작동합니다. 다중 조직 클러스터의 다른 조직에서는 작동하지 않습니다.

다중 조직 옵션

이 섹션에서는 Apigee 지원팀에서 향후 배포를 위해 기존 다중 조직 클러스터와 권장사항을 처리하는 방법을 설명합니다.

  • 기존 멀티 조직 Kubernetes 클러스터가 비프로덕션 및 프로덕션 컨텍스트에 배포된 경우 Apigee 지원팀은 이를 계속 지원합니다. 하지만 다음 섹션에서 설명하는 기술 제한사항에 유의하세요. 향후 프로덕션 배포를 변경하여 클러스터당 Apigee 조직 하나를 사용하는 것이 좋습니다.
  • 비프로덕션 컨텍스트에 기존 다중 조직 클러스터가 있으면 Apigee 지원팀은 이를 계속 지원합니다. 프로덕션 클러스터를 클러스터당 Apigee 조직 하나를 사용하는 새 구성으로 마이그레이션하는 것이 좋습니다.

기본 요건

계속하기 전에 다음 사항에 유의하세요.

  • 기존 하이브리드 조직에 환경이 하나 이상 설치되어 있고 기존 Kubernetes 클러스터에서 구성되어 있어야 합니다. 하이브리드 설치 안내를 참조하세요.
  • 단일 클러스터에서 조직 여러 개를 결합하면 하이브리드 버전이 모두 일치해야 합니다. 두 번째 조직을 클러스터에 추가하기 전에 필요한 경우 기존 하이브리드 설치를 업그레이드합니다. Apigee Hybrid 업그레이드를 참조하세요.

기존 클러스터에 추가할 조직 만들기

추가 조직을 만들려면 1부: 프로젝트 및 조직 설정의 단계를 수행합니다.

새 조직 구성

다음 단계에서는 새 재정의 파일을 만들고 새 조직에 맞게 구성합니다. overrides.yaml 파일에서는 조직 하나의 정보만 지원할 수 있습니다. 따라서 새 overrides.yaml 파일을 만들어 기존 Kubernetes 클러스터에 적용해야 합니다.

  1. 새 조직에서 사용할 서비스 계정을 만듭니다. 서비스 계정 만들기를 참조하세요.
  2. certs 디렉터리의 TLS 인증서 파일(.key.pem)을 기록해 둡니다. 인증서를 다시 만들어야 하는 경우 TLS 인증서 만들기의 안내를 따르면 됩니다.
  3. 기존 overrides.yaml을 새 파일에 복사하여 새 조직을 구성하기 위한 시작점으로 사용합니다. 예를 들면 new-overrides.yaml입니다.
  4. 다음 구성으로 새 재정의 파일을 수정합니다.
    org: "new-org-name"
    instanceID: "instance-id"   ## Must match the instanceID of your existing org.
    
    multiOrgCluster: true ## Enables exporting metrics for this org to the Google Cloud Project named with gcp:projectID
    
    k8sCluster:
      name: "existing-cluster-name"
      region: "existing-cluster-analytics-region"
    
    gcp:
      projectID: "new-project-id"
      name: "new-project-id"
      region: "new-project-default-location"
    
    namespace: namespace ## must be the same for both new and existing orgs
    
    virtualhosts:
      - name: new-environment-group-name
        sslCertPath: ./certs/cert-file-name # .crt or .pem
        sslKeyPath: ./certs/key-file-name # .key
    
    envs:
      - name: new-environment-name
        serviceAccountPaths:
          runtime: ./new-service-accounts-directory/new-project-id-apigee-runtime.json
          synchronizer: ./new-service-accounts-directory/new-project-id-apigee-synchronizer.json
          udca: ./new-service-accounts-directory/new-project-id-apigee-udca.json
    
    connectAgent:
      serviceAccountPath: ./new-service-accounts-directory/new-project-id-apigee-mart.json
    
    mart:
      serviceAccountPath: ./new-service-accounts-directory/new-project-id-apigee-mart.json
    
    metrics:
      serviceAccountPath: ./new-service-accounts-directory/new-project-id-apigee-metrics.json
    
    watcher:
      serviceAccountPath: ./new-service-accounts-directory/new-project-id-apigee-watcher.json

    다음 표에서는 재정의 파일에 제공해야 하는 각 속성 값을 설명합니다. 자세한 내용은 구성 속성 참조를 참조하세요.

    변수 설명
    new-org-name 새 조직의 이름입니다.
    instance-id 이 클러스터의 모든 조직에 동일한 인스턴스 ID가 있어야 합니다. 따라서 원래 조직의 재정의 파일에 있는 instanceID 항목과 일치해야 합니다.
    existing-cluster-name 이 조직을 추가할 클러스터의 이름입니다. 원본 클러스터의 재정의 파일에 있는 k8sCluster.name 항목과 일치해야 합니다.
    existing-cluster-analytics-region 원래 클러스터가 프로비저닝된 리전입니다. 원본 클러스터의 재정의 파일에 있는 k8sCluster.region 항목과 일치해야 합니다.
    new-project-id 새로운 프로젝트의 프로젝트 ID입니다. 프로젝트 ID와 조직 이름은 동일합니다.
    new-project-default-location 새 조직을 만들 때 지정한 분석 리전입니다. 기존 조직의 리전과 동일하지 않아도 됩니다.
    namespace 클러스터의 모든 조직은 같은 네임스페이스를 공유해야 합니다. 원래 조직에 사용된 네임스페이스와 동일한 네임스페이스를 사용해야 합니다. 대부분의 설치에 대한 네임스페이스는 apigee입니다.
    new-environment-group-name 새 조직을 위해 만든 새 환경 그룹입니다.
    cert-file-name
    key-file-name
    이 섹션의 1단계에서 확인하거나 만든 클러스터의 TLS 인증서와 키 파일입니다.
    new-environment-name 새 조직을 위해 만든 환경의 이름입니다.
    new-service-accounts-directory 새 조직을 위해 만든 서비스 계정 키 파일이 있는 디렉터리입니다.

구성 적용

새 조직 구성을 클러스터에 적용합니다.

  1. 테스트 실행 설치를 수행하여 문제가 있는지 확인합니다.
    helm upgrade ORG_NAME apigee-org/ \
      --install \
      --namespace apigee \
      --atomic \
      -f OVERRIDES_FILE.yaml \
      --dry-run=server
    
  2. 문제가 없으면 조직 수준 구성요소를 적용합니다. 이 단계에서는 Cassandra 작업(사용자 및 스키마), Apigee Connect, Apigee Watcher, MART 서비스를 설치합니다.
    helm upgrade ORG_NAME apigee-org/ \
      --install \
      --namespace apigee \
      --atomic \
      -f NEW_OVERRIDES_FILE.yaml
    
  3. 환경을 설치합니다. 이 단계에서는 환경별로 apigee-runtime, 동기화 담당자, UDCA 구성요소를 설치합니다.
    helm upgrade ENV_NAME apigee-env/ \
      --install \
      --namespace apigee \
      --atomic \
      --set env=ENV_NAME \
      -f overrides.yaml \
      --dry-run=server
    
    helm upgrade ENV_NAME apigee-env/ \
      --install \
      --namespace apigee \
      --atomic \
      --set env=ENV_NAME \
      -f overrides.yaml
    
  4. 부하 분산기 변경사항을 적용합니다. 이 단계는 인그레스에서 두 번째 조직의 새 가상 호스트를 리슨하도록 구성합니다.
    helm upgrade NEW_ENV_GROUP_NAME apigee-virtualhost/ \
      --install \
      --namespace apigee \
      --atomic \
      --set envgroup=NEW_ENV_GROUP_NAME \
      -f overrides.yaml \
      --dry-run=server
    
    helm upgrade NEW_ENV_GROUP_NAME apigee-virtualhost/ \
      --install \
      --namespace apigee \
      --atomic \
      --set envgroup=NEW_ENV_GROUP_NAME \
      -f overrides.yaml
    
  5. 동기화 담당자 액세스 사용 설정의 다음 단계에 따라 새 조직에 대한 동기화 담당자 액세스를 사용 설정합니다.
  6. 기본적으로 Apigee Hybrid 런타임을 처음 설치하면 multiOrgCluster가 중지된 상태로 원격 분석 구성요소가 구성됩니다. 다음 단계를 따라 클러스터의 조직마다 다중 조직 원격 분석을 사용 설정합니다.
    1. 다음 명령어를 사용하여 기존 원격 분석 구성요소를 삭제합니다.
      helm delete telemetry
      
    2. 기존 조직의 overrides.yaml 파일에 다음 줄을 추가합니다.
      multiOrgCluster: true
    3. 변경사항을 적용하여 조직의 원격 분석 구성요소를 설치합니다.

      먼저 테스트 실행을 수행합니다.

      helm upgrade telemetry apigee-telemetry/ \
        --install \
        --namespace apigee \
        --atomic \
        -f FIRST_OVERRIDES_FILE.yaml \
        --dry-run=server
      

      테스트 실행이 성공하면 변경사항을 적용하고 원격 분석 구성요소를 설치합니다.

      helm upgrade telemetry apigee-telemetry/ \
        --install \
        --namespace apigee \
        --atomic \
        -f FIRST_OVERRIDES_FILE.yaml
      
    4. 다음 줄이 새 조직의 overrides.yaml 파일에 있어야 합니다.
      multiOrgCluster: true
    5. 변경사항을 적용하여 새 조직에 대해 원격 분석 구성요소를 설치합니다. 다중 조직 클러스터의 모든 새 조직에 대해 이를 반복합니다.

      먼저 테스트 실행을 수행합니다.

      helm upgrade telemetry apigee-telemetry/ \
        --install \
        --namespace apigee \
        --atomic \
        -f NEW_OVERRIDES_FILE.yaml \
        --dry-run=server
      

      테스트 실행이 성공하면 변경사항을 적용하고 원격 분석 구성요소를 설치합니다.

      helm upgrade telemetry apigee-telemetry/ \
        --install \
        --namespace apigee \
        --atomic \
        -f NEW_OVERRIDES_FILE.yaml