ステップ 6: クラスタを構成する

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

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

始める前に

次のシナリオを確認して、クラスタを構成するかどうかを判断することをおすすめします。これらの構成は省略可能です。

クラスタを構成する

慣例により、構成のオーバーライドは $HYBRID_FILES/overrides ディレクトリ内の overrides.yaml という名前のファイルに記述されます。

  1. $HYBRID_FILES/overrides ディレクトリに overrides.yaml という名前の新しいファイルを作成します。次に例を示します。
    vi $HYBRID_FILES/overrides/overrides.yaml

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

  2. 次のように、必須プロパティの値を overrides.yaml に追加します。以下には、各プロパティの詳細な説明も記載されています。

    GKE に Apigee ハイブリッドをインストールし、Workload Identity を使用してハイブリッド コンポーネントを認証する場合は、[GKE - Workload Identity] タブを選択して overrides.yaml ファイルを構成します。

    その他のすべてのインストールでは、ステップ 4: サービス アカウントと認証情報を作成するの選択内容に応じて、非本番環境(Non-prod)と本番環境(Prod)のいずれか用のタブを選択します。

    本番環境にインストールする場合は、本番環境用に Cassandra を構成するで、Cassandra データベースのストレージ要件を確認してください。

    GKE - Workload Identity

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

    GKE に Apigee ハイブリッドをインストールする場合は、代わりに Workload Identity を使用して Google API の認証およびリクエストの発行を行えます。Workload Identity の概要については、以下をご覧ください。

    Workload Identity を GKE 上の Apigee ハイブリッドで使用するには、このテンプレートを使用します。ステップ 8: ハイブリッド ランタイムをインストールするの手順に沿って Kubernetes サービス アカウントを作成し、それをステップ 4: サービス アカウントと認証情報を作成するで作成した Google サービス アカウントに関連付けます。

    gcp:
      region: ANALYTICS_REGION
      projectID: GCP_PROJECT_ID
      workloadIdentityEnabled: true
    
    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
        # false for all GKE installations.
        # See Multi-region deployment: Prerequisites
      replicaCount: 3
        # Use 1 for demo installations and multiples of 3 for production.
        # See Configure Cassandra for production for guidelines.
      backup:
        enabled: true
        # Set to true for initial installation.
        # This triggers apigeectl to create the apigee-cassandra-backup Kubernetes service account.
        # See Cassandra backup overview for instructions on using cassandra.backup.
    
    virtualhosts:
    - name: ENVIRONMENT_GROUP_NAME
      selector:
        app: apigee-ingressgateway
        ingress_name: INGRESS_NAME
      sslCertPath: ./certs/CERT_NAME.pem
      sslKeyPath: ./certs/KEY_NAME.key
    
    ingressGateways:
    - name: INGRESS_NAME # maximum 17 characters.
      replicaCountMin: 2
      replicaCountMax: 10
      svcAnnotations:  # optional. If you are on AKS, see Known issue #260772383
        SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE
      svcLoadBalancerIP: SVC_LOAD_BALANCER_IP  # optional
    
    envs:
    - name: ENVIRONMENT_NAME
    
    logger:
      enabled: false # Set to false for all GKE installations.
    
    

    非本番環境

    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"
    
    cassandra:
      replicaCount: 1
        # Use 1 for non-prod or "demo" installations and multiples of 3 for production.
        # See Configure Cassandra for production for guidelines.
      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
      selector:
        app: apigee-ingressgateway
        ingress_name: INGRESS_NAME
      sslCertPath: ./certs/CERT_NAME.pem
      sslKeyPath: ./certs/KEY_NAME.key
    
    ingressGateways:
    - name: INGRESS_NAME # maximum 17 characters.
      replicaCountMin: 2
      replicaCountMax: 10
      svcAnnotations:  # optional. If you are on AKS, see Known issue #260772383
        SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE
      svcLoadBalancerIP: SVC_LOAD_BALANCER_IP  # optional
    
    envs:
    - name: ENVIRONMENT_NAME
      serviceAccountPaths:
        synchronizer: NON_PROD_SERVICE_ACCOUNT_FILEPATH
          # For example: "./service-accounts/GCP_PROJECT_ID-apigee-non-prod.json"
        udca: NON_PROD_SERVICE_ACCOUNT_FILEPATH
        runtime: NON_PROD_SERVICE_ACCOUNT_FILEPATH
    
    mart:
      serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH
    
    connectAgent:
      serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH
    
    metrics:
      serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH
    
    udca:
      serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH
    
    watcher:
      serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH
    
    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: NON_PROD_SERVICE_ACCOUNT_FILEPATH
    
    

    本番環境

    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"
    
    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
      replicaCount: 3
        # Use multiples of 3 for production.
        # See Configure Cassandra for production for guidelines.
      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
      selector:
        app: apigee-ingressgateway
        ingress_name: INGRESS_NAME
      sslCertPath: ./certs/CERT_NAME.pem
      sslKeyPath: ./certs/KEY_NAME.key
    
    ingressGateways:
    - name: INGRESS_NAME # maximum 17 characters. See Known issue 243167389.
      replicaCountMin: 2
      replicaCountMax: 10
      svcAnnotations:  # optional. If you are on AKS, see Known issue #260772383
        SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE
    
    envs:
    - name: ENVIRONMENT_NAME
      serviceAccountPaths:
        synchronizer: SYNCHRONIZER_SERVICE_ACCOUNT_FILEPATH
          # For example: "./service-accounts/GCP_PROJECT_ID-apigee-synchronizer.json"
        udca: UDCA_SERVICE_ACCOUNT_FILEPATH
          # For example: "./service-accounts/GCP_PROJECT_ID-apigee-udca.json"
        runtime: RUNTIME_SERVICE_ACCOUNT_FILEPATH
          # For example: "./service-accounts/GCP_PROJECT_ID-apigee-runtime.json"
    
    mart:
      serviceAccountPath: MART_SERVICE_ACCOUNT_FILEPATH
            # For example: "./service-accounts/GCP_PROJECT_ID-apigee-mart.json"
    
    connectAgent:
      serviceAccountPath: MART_SERVICE_ACCOUNT_FILEPATH
            # Use the same service account for mart and connectAgent
    
    metrics:
      serviceAccountPath: METRICS_SERVICE_ACCOUNT_FILEPATH
            # For example: "./service-accounts/GCP_PROJECT_ID-apigee-metrics.json"
    
    udca:
      serviceAccountPath: UDCA_SERVICE_ACCOUNT_FILEPATH
            # For example: "./service-accounts/GCP_PROJECT_ID-apigee-udca.json"
    
    watcher:
      serviceAccountPath: WATCHER_SERVICE_ACCOUNT_FILEPATH
            # For example: "./service-accounts/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: LOGGER_SERVICE_ACCOUNT_FILEPATH
            # For example: "./service-accounts/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
      replicaCount: 3
    
    virtualhosts:
    - name: example-env-group
      selector:
        app: apigee-ingressgateway
        ingress_name: my-ingress-1
      sslCertPath: ./certs/keystore.pem
      sslKeyPath: ./certs/keystore.key
    
    ingressGateways:
    - name: my-ingress-1
      replicaCountMin: 2
      replicaCountMax: 10
    
    envs:
    - name: test
      serviceAccountPaths:
        synchronizer: ./service-accounts/my-hybrid-project-apigee-non-prod.json
          # for production environments, my-hybrid-project-apigee-synchronizer.json
        udca: ./service-accounts/my-hybrid-project-apigee-non-prod.json
          # for production environments, my-hybrid-project-apigee-udca.json
        runtime: ./service-accounts/my-hybrid-project-apigee-non-prod.json
          # for production environments, my-hybrid-project-apigee-runtime.json
    
    mart:
      serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json
        # for production environments, my-hybrid-project-apigee-mart.json
    
    connectAgent:
      serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json
        # for production environments, example-hybrid-apigee-mart.json
    
    metrics:
      serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json
        # for production environments, my-hybrid-project-apigee-metrics.json
    
    udca:
      serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json
        # for production environments, my-hybrid-project-apigee-udca.json
    
    watcher:
      serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json
        # for production environments, my-hybrid-project-apigee-watcher.json
    
    logger:
      enabled: false # Set to "false" for GKE. Set to "true" for all other Kubernetes platforms.
      serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json
        # for production environments, LOGGER_SERVICE_ACCOUNT_NAME.json
    
  3. 完了したらファイルを保存します。

次の表に、オーバーライド ファイルで指定する必要があるプロパティ値を示します。詳細については、構成プロパティのリファレンスをご覧ください。

変数 説明
ANALYTICS_REGION GKE では、この値は、クラスタが稼働しているリージョンと同じリージョンに設定する必要があります。その他のプラットフォームでは、アナリティクスをサポートするクラスタに最も近い分析リージョンを選択します(パート 1: ステップ 2: 組織を作成するの表を参照)。

これは、以前に環境変数 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

このインスタンスを識別する一意の文字列。任意の文字と数字の組み合わせで、長さは 63 文字以下にする必要があります。

同じクラスタ内に複数の組織を作成できますが、instanceID は同じ Kubernetes クラスタ内のすべての組織で同じにする必要があります。

ENVIRONMENT_GROUP_NAME 環境が割り当てられている環境グループの名前。これは、プロジェクトと組織の設定 - ステップ 3: 環境グループを作成するで作成したグループです。この値は、環境変数 ENV_GROUP に割り当てられます。
CERT_NAME
KEY_NAME
ステップ 5: TLS 証明書を作成するで生成した自己署名 TLS 鍵ファイルと証明書ファイルの名前を入力します。これらのファイルは、base_directory/hybrid-files/certs ディレクトリに配置する必要があります。次に例を示します。

sslCertPath: ./certs/keystore.pem
sslKeyPath: ./certs/keystore.key
INGRESS_NAME デプロイの Apigee Ingress ゲートウェイの名前。次の要件を満たす任意の名前を使用できます。
  • 17 文字以下にする
  • 小文字の英数字またはハイフン(-)のみを使用する
  • 先頭が英数字である
  • 末尾が英数字である

構成プロパティ リファレンスの ingressGateways[].name をご覧ください。

SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE (省略可)これは、デフォルトの Ingress サービスのアノテーションを提供する Key-Value ペアです。アノテーションは、ハイブリッド インストールの構成をサポートするために、Cloud Platform によって使用されます。たとえば、ロードバランサのタイプを内部または外部に設定する場合などです。

アノテーションは、プラットフォームによって異なります。必須アノテーションと推奨アノテーションについては、プラットフォームのドキュメントをご覧ください。

使用しない場合は、このセクションをコメントアウトするか削除してください。

SVC_LOAD_BALANCER_IP (省略可)ロードバランサ用に予約した IP アドレス。ロードバランサの IP アドレスの指定をサポートするプラットフォームでは、この IP アドレスを使用してロードバランサが作成されます。ロードバランサの IP を指定できないプラットフォームでは、このプロパティは無視されます。

使用しない場合は、このセクションをコメントアウトするか削除してください。

ENVIRONMENT_NAME プロジェクトと組織の設定 - ステップ 3: 環境グループを作成するで説明したように、UI で環境を作成したときに使用した名前を使用します。
*_SERVICE_ACCOUNT_FILEPATH service-accounts/ ディレクトリ内のサービス アカウント JSON ファイルのパスとファイル名。名前にはサービス アカウント ファイルのパスを含める必要があります。フルパスを指定することも、hybrid-files/ ディレクトリへの相対パスを指定することもできます。相対パスを含める場合は、hybrid-files/ ディレクトリからこの構成を適用するコマンド apigeectl を呼び出します。

非本番環境の場合は、デフォルトでは 1 つのサービス アカウントの名前は GCP_PROJECT_ID-non-prod.json です。

本番環境の場合は、ハイブリッド ランタイムの設定 - ステップ 4: サービス アカウントと認証情報を作成するcreate-service-account ツールを使用して生成したサービス アカウント キー ファイルの名前です。

サービス アカウント ファイルの一覧は service-accounts/ ディレクトリで確認できます。

本番環境のサービス アカウントのデフォルト名は次のとおりです。

  • Cassandra: GCP_PROJECT_ID-apigee-cassandra.json
  • Logger: GCP_PROJECT_ID-apigee-logger.json
  • MART: GCP_PROJECT_ID-apigee-mart.json
  • Connect agent: GCP_PROJECT_ID-apigee-mart.json
  • Metrics: GCP_PROJECT_ID-apigee-metrics.json
  • Apigee ランタイム: GCP_PROJECT_ID-
  • Synchronizer: GCP_PROJECT_ID-apigee-synchronizer.json
  • UDCA: GCP_PROJECT_ID-apigee-udca.json
  • Watcher: GCP_PROJECT_ID-apigee-watcher.json

まとめ

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

次のステップ

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