7단계: 하이브리드 런타임 구성

구성 재정의 지정

Apigee Hybrid 설치 프로그램은 많은 설정에 기본값을 사용합니다. 하지만 기본값이 없는 몇 가지 설정이 있습니다. 다음에 설명된 대로 이 설정에 값을 제공해야 합니다.

  1. 현재 위치가 hybrid-base-directory/hybrid-files/overrides/ 디렉터리인지 확인합니다.
    cd hybrid-base-directory/hybrid-files/overrides
  2. 즐겨 찾는 텍스트 편집기에서 overrides.yaml라는 새 파일을 만듭니다. 예를 들면 다음과 같습니다.
    vi overrides.yaml

    overrides.yaml은 고유 Apigee Hybrid 설치에 대한 구성을 제공합니다. 이 단계의 재정의 파일은 첫 번째 설치에 적합한 소규모 하이브리드 런타임 설치를 위한 기본 구성을 제공합니다.

  3. overrides.yaml에서 아래 표시된 필요한 속성 값을 추가합니다. 각 속성에 대한 자세한 설명은 다음과 같습니다.

    구문

    overrides.yaml 파일에 다음 구조와 구문이 있는지 확인합니다. red, bold italics의 값은 제공해야 하는 속성 값이며, 다음 표에 설명되어 있습니다.

    Google Cloud 프로젝트 리전과 Kubernetes 클러스터 리전에 대한 플랫폼은 서로 다릅니다. Apigee Hybrid를 설치할 플랫폼을 선택합니다.

    gcp:
      region: analytics-region
      projectID: gcp-project-id
    
    k8sCluster:
      name: cluster-name
      region: cluster-location # Must be the closest Google Cloud region to your cluster.
    org: org-name
    
    instanceID: "unique-instance-identifier"
    
    cassandra:
      hostNetwork: false
        # Set to false for single region installations and multi-region installations
        # with connectivity between pods in different clusters, for example GKE installations.
        # Set to true  for multi-region installations with no communication between
        # pods in different clusters, for example GKE On-prem, GKE on AWS, Anthos on bare metal,
        # AKS, EKS, and OpenShift installations.
        # See Multi-region deployment: Prerequisites
    
    virtualhosts:
      - name: environment-group-name
        sslCertPath: ./certs/cert-name.pem
        sslKeyPath: ./certs/key-name.key
    
    envs:
      - name: environment-name
        serviceAccountPaths:
          synchronizer: ./service-accounts/synchronizer-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-synchronizer.json
          udca: ./service-accounts/udca-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-udca.json
          runtime: ./service-accounts/runtime-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-runtime.json
    
    mart:
      serviceAccountPath: ./service-accounts/mart-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-mart.json
    
    connectAgent:
      serviceAccountPath: ./service-accounts/mart-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-mart.json
            # Use the same service account for mart and connectAgent
    
    metrics:
      serviceAccountPath: ./service-accounts/metrics-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-metrics.json
    
    udca:
      serviceAccountPath: ./service-accounts/udca-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-udca.json
    
    watcher:
      serviceAccountPath: ./service-accounts/watcher-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-watcher.json
    
    logger:
      enabled: false
            # Set to false to disable logger for GKE installations.
            # Set to true for all platforms other than GKE.
            # See apigee-logger in Service accounts and roles used by hybrid components.
      serviceAccountPath: ./service-accounts/logger-service-account-name.json
            # for non-production environments, gcp-project-id-apigee-non-prod.json
            # for production environments, gcp-project-id-apigee-logger.json
    
    

    예시

    다음 예시에서는 예시 속성 값이 추가된, 완료된 재정의 파일을 보여줍니다.

    gcp:
      region: us-central1
      projectID: hybrid-example
    
    k8sCluster:
      name: apigee-hybrid
      region: us-central1
    
    org: hybrid-example
    
    instanceID: "my_hybrid_example"
    
    cassandra:
      hostNetwork: false
    
    virtualhosts:
      - name: example-env-group
        sslCertPath: ./certs/keystore.pem
        sslKeyPath: ./certs/keystore.key
    
    envs:
      - name: test
        serviceAccountPaths:
          synchronizer: ./service-accounts/hybrid-project-apigee-non-prod.json
            # for production environments, hybrid-project-apigee-synchronizer.json
          udca: ./service-accounts/hybrid-project-apigee-non-prod.json
            # for production environments, hybrid-project-apigee-udca.json
          runtime: ./service-accounts/hybrid-project-apigee-non-prod.json
            # for production environments, hybrid-project-apigee-runtime.json
    
    mart:
      serviceAccountPath: ./service-accounts/hybrid-project-apigee-non-prod.json
        # for production environments, hybrid-project-apigee-mart.json
    
    connectAgent:
      serviceAccountPath: ./service-accounts/hybrid-project-apigee-non-prod.json
        # for production environments, example-hybrid-apigee-mart.json
    
    metrics:
      serviceAccountPath: ./service-accounts/hybrid-project-apigee-non-prod.json
        # for production environments, hybrid-project-apigee-metrics.json
    
    udca:
      serviceAccountPath: ./service-accounts/hybrid-project-apigee-non-prod.json
        # for production environments, hybrid-project-apigee-udca.json
    
    watcher:
      serviceAccountPath: ./service-accounts/hybrid-project-apigee-non-prod.json
        # for production environments, hybrid-project-apigee-watcher.json
    
    logger:
      enabled: false # Set to "false" for GKE. Set to "true" for all other kubernetes platforms.
      serviceAccountPath: ./service-accounts/hybrid-project-apigee-non-prod.json
        # for production environments, logger-service-account-name.json
    
    
  4. 완료되면 파일을 저장합니다.

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

변수 설명
analytics-region GKE에서 클러스터가 실행되는 동일한 리전으로 이 값을 설정해야 합니다. 다른 모든 플랫폼에서 애널리틱스 지원을 가진 클러스터에 가장 가까운 애널리틱스 리전을 선택합니다(파트 1, 4단계: 조직 만들기의 테이블 참조).

이전에 환경 변수 ANALYTICS_REGION에 할당한 값입니다.

gcp-project-id apigee-loggerapigee-metrics가 데이터를 푸시하는 Google Cloud 프로젝트를 식별합니다. 환경 변수 PROJECT_ID에 할당된 값입니다.
cluster-name Kubernetes 클러스터 이름입니다. 환경 변수 CLUSTER_NAME에 할당된 값입니다.
cluster-location 클러스터가 실행 중인 리전입니다. 1단계: 클러스터 만들기에서 클러스터를 만든 리전입니다.

이전에 환경 변수 CLUSTER_LOCATION에 할당한 값입니다.

org-name Apigee 하이브리드 조직의 ID입니다. 환경 변수 ORG_NAME에 할당된 값입니다.
unique-instance-identifier

이 인스턴스를 식별하는 고유한 문자열입니다. 문자와 숫자 조합을 최대 63자(영문 기준)까지 사용할 수 있습니다.

동일한 클러스터에 여러 조직을 만들 수 있지만 instanceId는 동일한 Kubernetes 클러스터의 모든 조직에 대해 동일해야 합니다.
environment-group-name 환경이 할당된 환경 그룹의 이름입니다. 프로젝트 및 조직 설정 - 5단계: 환경 그룹 만들기에서 만든 그룹입니다. 환경 변수 ENV_GROUP에 할당된 값입니다.
cert-name
key-name
6단계: TLS 인증서 만들기에서 이전에 생성한 자체 서명된 TLS 키 및 인증서 파일의 이름을 입력합니다. 이러한 파일은 base_directory/hybrid-files/certs 디렉터리에 있어야 합니다. 예를 들면 다음과 같습니다.

sslCertPath: ./certs/keystore.pem
sslKeyPath: ./certs/keystore.key
environment-name 프로젝트 및 조직 설정 - 5단계: 환경 그룹 만들기의 설명대로 UI에서 환경을 만들 때 사용한 이름과 동일한 이름을 사용합니다.
synchronizer-service-account-name 비프로덕션 환경의 경우 단일 서비스 계정인 non-prod의 이름입니다. 프로덕션 환경의 경우 하이브리드 런타임 설정 - 6단계: 서비스 계정 및 사용자 인증 정보 만들기에서 create-service-account 도구로 생성한 apigee-synchronizer 서비스 계정 키 파일의 이름입니다. service-accounts/ 디렉터리에서 서비스 계정 파일 목록을 볼 수 있습니다. 예를 들면 다음과 같습니다.

ls ../service-accounts/
udca-service-account-name 비프로덕션 환경의 경우 단일 서비스 계정인 non-prod의 이름입니다. 비프로덕션 환경의 경우 create-service-account 도구로 생성한 apigee-udca 서비스 계정 키 파일의 이름입니다.
runtime-service-account-name 비프로덕션 환경의 경우 단일 서비스 계정인 non-prod의 이름입니다. 프로덕션 환경의 경우 create-service-account 도구로 생성한 apigee-runtime 서비스 계정 키 파일의 이름입니다.
mart-service-account-name 비프로덕션 환경의 경우 단일 서비스 계정인 non-prod의 이름입니다. 비프로덕션 환경의 경우 create-service-account 도구로 생성한 apigee-mart 서비스 계정 키 파일의 이름입니다.
metrics-service-account-name 비프로덕션 환경의 경우 단일 서비스 계정인 non-prod의 이름입니다. 비프로덕션 환경의 경우 create-service-account 도구로 생성한 apigee-metrics 서비스 계정 키 파일의 이름입니다.
udca-service-account-name 비프로덕션 환경의 경우 단일 서비스 계정인 non-prod의 이름입니다. 비프로덕션 환경의 경우 create-service-account 도구로 생성한 apigee-udca 서비스 계정 키 파일의 이름입니다.
watcher-service-account-name 비프로덕션 환경의 경우 단일 서비스 계정인 non-prod의 이름입니다. 비프로덕션 환경의 경우 create-service-account 도구로 생성한 apigee-watcher 서비스 계정 키 파일의 이름입니다.
logger-service-account-name 비프로덕션 환경의 경우 단일 서비스 계정인 non-prod의 이름입니다. 비프로덕션 환경의 경우 create-service-account 도구로 생성한 apigee-logger 서비스 계정 키 파일의 이름입니다.

요약

구성 파일은 하이브리드 구성요소를 클러스터에 배포하는 방법을 Kubernetes에 지정합니다. 그런 후 Apigee 런타임 및 관리 영역이 통신을 수행할 수 있도록 동기화 담당자 액세스를 사용 설정합니다.

다음 단계

1 2 3 4 5 6 7 (다음) 8단계: 동기화 담당자 액세스 사용 설정 9