ステップ 7: ハイブリッド ランタイムを構成する

構成のオーバーライドを指定する

Apigee ハイブリッド インストーラは、多くの設定でデフォルト値を使用しますが、デフォルト値がない設定もいくつかあります。その場合、次の値を指定する必要があります。

  1. 現在のディレクトリが hybrid-base-directory/hybrid-files/overrides/ ディレクトリであることを確認します。
    cd hybrid-base-directory/hybrid-files/overrides
  2. 任意のテキスト エディタで、overrides.yaml という名前の新しいファイルを作成します。次に例を示します。
    vi overrides.yaml

    overrides.yaml は、独自の Apigee ハイブリッド インストール用の構成を提供します。このステップのオーバーライド ファイルは、小規模なフットプリントのハイブリッド ランタイム インストールの基本的な構成を提供します。これは、最初のインストールに適しています。

  3. 次のように、必須プロパティの値を overrides.yaml に追加します。以下では、各プロパティの詳細についても説明します。

    本番環境へのインストールについては、本番環境に Cassandra を構成するの Cassandra データベースのストレージ要件をご覧ください。

    構文

    overrides.yaml ファイルが以下の構造と構文になっていることを確認します。red, bold italics の値は、指定する必要があるプロパティ値です。詳しくは次の表をご覧ください。

    Google Cloud プロジェクトのリージョンと Kubernetes クラスタのリージョンでは、それぞれのプラットフォーム間で差異があります。Apigee ハイブリッドをインストールするプラットフォームを選択してください。

    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"  # See the property description table below information about this parameter.
      
    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
      storage:
        capacity: 500Gi
      resources:
        requests:
          cpu: 7
          memory: 15Gi
      maxHeapSize: 8192M
      heapNewSize: 1200M
        # Minimum storage requirements for a production environment.
        # See Configure Cassandra for production.
    
    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 では、この値は、クラスタが稼働しているリージョンと同じリージョンに設定する必要があります。その他のプラットフォームでは、Analytics をサポートするクラスタに最も近い分析リージョンを選択します(パート 1: ステップ 4: 組織を作成するの表を参照)。

これは、以前に環境変数 ANALYTICS_REGION に割り当てた値です。

gcp-project-id apigee-loggerapigee-metrics がデータを push する Google Cloud プロジェクトを指定します。この値は、環境変数 PROJECT_ID に割り当てられます。
cluster-name Kubernetes クラスタ名。この値は、環境変数 CLUSTER_NAME に割り当てられます。
cluster-location クラスタが実行されているリージョン。ステップ 1: クラスタを作成するでクラスタを作成したリージョンです。

以前に環境変数 CLUSTER_LOCATION に割り当てた値です。

org-name Apigee ハイブリッド組織の ID。この値は、環境変数 ORG_NAME に割り当てられます。
unique-instance-identifier

クラスタごとに Apigee ハイブリッド インスタンスを識別するための一意の文字列。文字列は、文字と数字の組み合わせで 63 文字以下にする必要があります。

  • 1 つのクラスタに複数の組織を作成できます。同じクラスタに新しい組織を追加するたびに、同じ instanceID 値を使用するようにしてください。
  • 複数のクラスタが(同じリージョンまたは複数のリージョンに)ある場合、各クラスタに一意の instanceID が必要です。

一意の ID を生成するのにサポートが必要な場合は、random.org/strings などの文字列生成ツールを使用できます。

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 非本番環境の場合は、デフォルトでは 1 つのサービス アカウントの名前(non-prod)。本番環境の場合は、ハイブリッド ランタイムの設定 - ステップ 6: サービス アカウントと認証情報を作成するcreate-service-account ツールを使用して生成した apigee-synchronizer サービス アカウント キー ファイル。サービス アカウント ファイルの一覧は service-accounts/ ディレクトリで確認できます。次に例を示します。
ls ../service-accounts/
udca-service-account-name 非本番環境の場合は、デフォルトでは 1 つのサービス アカウントの名前(non-prod)。本番環境の場合は、create-service-account ツールで生成した apigee-udca サービス アカウント キー ファイルの名前。
runtime-service-account-name 非本番環境の場合は、デフォルトでは 1 つのサービス アカウントの名前(non-prod)。本番環境の場合は、create-service-account ツールで生成した apigee-runtime サービス アカウント キー ファイルの名前。
mart-service-account-name 非本番環境の場合は、デフォルトでは 1 つのサービス アカウントの名前(non-prod)。本番環境の場合は、create-service-account ツールで生成した apigee-mart サービス アカウント キー ファイルの名前。
metrics-service-account-name 非本番環境の場合は、デフォルトでは 1 つのサービス アカウントの名前(non-prod)。本番環境の場合は、create-service-account ツールで生成した apigee-metrics サービス アカウント キー ファイルの名前。
udca-service-account-name 非本番環境の場合は、デフォルトでは 1 つのサービス アカウントの名前(non-prod)。本番環境の場合は、create-service-account ツールで生成した apigee-udca サービス アカウント キー ファイルの名前。
watcher-service-account-name 非本番環境の場合は、デフォルトでは 1 つのサービス アカウントの名前(non-prod)。本番環境の場合は、create-service-account ツールで生成した apigee-watcher サービス アカウント キー ファイルの名前。
logger-service-account-name 非本番環境の場合は、デフォルトでは 1 つのサービス アカウントの名前(non-prod)。本番環境の場合は、create-service-account ツールで生成した apigee-logger サービス アカウント キー ファイルの名前。

まとめ

構成ファイルを使用して、ハイブリッド コンポーネントをクラスタにデプロイする方法を Kubernetes に指示します。次のステップでは、Apigee ランタイムと管理プレーンが通信できるように Synchronizer アクセスを有効にします。

1 2 3 4 5 6 7 (次)ステップ 8: Synchronizer アクセスを有効にする 9