構成のオーバーライドを指定する
Apigee ハイブリッド インストーラでは、多くの設定でデフォルトが使用されます。ただし、デフォルトがない設定もあります。その場合、次の値を指定する必要があります。
始める前に
次のシナリオを確認して、クラスタを構成するかどうかを判断することをおすすめします。これらの構成は省略可能です。
- 複数のリージョンにハイブリッドをインストールする予定の場合は、先に進む前にマルチリージョン デプロイをご覧ください。
- Apigee ハイブリッドでは、Cassandra ユーザーにデフォルト パスワードが用意されています。Apigee では、デフォルトのユーザー パスワードを変更することをおすすめしています。詳細については、Cassandra 用の TLS の構成をご覧ください。
- Cassandra のストレージとヒープの設定を構成する場合は、ストレージとヒープの設定を構成するをご覧ください。
- パート 1: プロジェクトと組織の設定 - ステップ 1: API を有効にするで説明されているように、本番環境へのインストール シナリオでは、Cassandra 用に永続ソリッド ステート ディスク(SSD)ストレージを構成します。Apigee ハイブリッドでは、ローカル SSD の使用をサポートしていません。詳細については、本番環境でのデプロイ用の SSD ストレージを追加するをご覧ください。
クラスタを構成する
慣例により、構成のオーバーライドは overrides.yaml
という名前のファイルに書き込まれ、通常は $APIGEE_HELM_CHARTS_HOME
ディレクトリに保存されます。
$APIGEE_HELM_CHARTS_HOME
ディレクトリにoverrides.yaml
という名前の新しいファイルを作成します。overrides.yaml
は、独自の Apigee ハイブリッド インストール用の構成を提供します。このステップのオーバーライド ファイルは、小規模なフットプリントのハイブリッド ランタイム インストールの基本的な構成を提供します。これは、最初のインストールに適しています。- 次のように、必須プロパティの値を
overrides.yaml
に追加します。以下では、各プロパティについて詳しく説明します。ステップ 4: サービス アカウントを作成するで選択した環境に応じて、インストール、本番環境、非本番環境(デモ、評価、概念実証のインストール)のタブを選択してください。
本番環境にインストールする場合は、本番環境用に Cassandra を構成するで、Cassandra データベースのストレージ要件を確認してください。
GKE に Apigee ハイブリッドをインストールし、Workload Identity を使用してハイブリッド コンポーネントを認証する場合は、本番環境: Workload Identity または非本番環境: Workload Identity のいずれかのタブを選択して
overrides.yaml
ファイルを構成してください。overrides.yaml
ファイルが以下の構造と構文になっていることを確認します。red, bold italics の値は、指定する必要があるプロパティ値です。これらの値は編集可能です。詳しくは次の表をご覧ください。Google Cloud プロジェクトのリージョンと Kubernetes クラスタのリージョンでは、それぞれのプラットフォーム間で差異があります。Apigee ハイブリッドをインストールするプラットフォームを選択してください。
instanceID: "
UNIQUE_INSTANCE_IDENTIFIER " namespace:APIGEE_NAMESPACE # Usually "apigee" gcp: projectID:PROJECT_ID region:ANALYTICS_REGION k8sCluster: name:CLUSTER_NAME region:CLUSTER_LOCATION # Must be the closest Google Cloud region to your cluster. org:ORG_NAME # Required if using data residency with hybrid: contractProvider: https://CONTROL_PLANE_LOCATION -apigee.googleapis.com # Required if using data residency with hybrid: newDataPipeline: debugSession: true analytics: true envs: - name:ENVIRONMENT_NAME serviceAccountPaths: # Provide the path relative to the chart directory. synchronizer:SYNCHRONIZER_SERVICE_ACCOUNT_FILEPATH # For example: "PROJECT_ID -apigee-synchronizer.json" runtime:RUNTIME_SERVICE_ACCOUNT_FILEPATH # For example: "PROJECT_ID -apigee-runtime.json" udca:UDCA_SERVICE_ACCOUNT_FILEPATH # For example: "PROJECT_ID -apigee-udca.json" 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 Google Distributed Cloud on VMware or bare metal, GKE on AWS, # 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. 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 #260772383SVC_ANNOTATIONS_KEY :SVC_ANNOTATIONS_VALUE virtualhosts: - name:ENVIRONMENT_GROUP_NAME selector: app: apigee-ingressgateway ingress_name:INGRESS_NAME sslCertPath:PATH_TO_CERT_FILE sslKeyPath:PATH_TO_KEY_FILE mart: serviceAccountPath:MART_SERVICE_ACCOUNT_FILEPATH # For example: "apigee-org/PROJECT_ID -apigee-mart.json" connectAgent: serviceAccountPath:MART_SERVICE_ACCOUNT_FILEPATH # Use the same service account for mart and connectAgent # Provide the path relative to the chart directory. # For example: "PROJECT_ID -apigee-mart.json" logger: enabled:true # enabled by default # See apigee-logger in Service accounts and roles used by hybrid components. serviceAccountPath:LOGGER_SERVICE_ACCOUNT_FILEPATH # Provide the path relative to the chart directory. # For example: "PROJECT_ID -apigee-logger.json" metrics: serviceAccountPath:METRICS_SERVICE_ACCOUNT_FILEPATH # Provide the path relative to the chart directory. # For example: "PROJECT_ID -apigee-metrics.json" udca: serviceAccountPath:UDCA_SERVICE_ACCOUNT_FILEPATH # Provide the path relative to the chart directory. # For example: "PROJECT_ID -apigee-udca.json" watcher: serviceAccountPath:WATCHER_SERVICE_ACCOUNT_FILEPATH # Provide the path relative to the chart directory. # For example: "PROJECT_ID -apigee-watcher.json"overrides.yaml
ファイルが以下の構造と構文になっていることを確認します。red, bold italics の値は、指定する必要があるプロパティ値です。これらの値は編集可能です。詳しくは次の表をご覧ください。Google Cloud プロジェクトのリージョンと Kubernetes クラスタのリージョンでは、それぞれのプラットフォーム間で差異があります。Apigee ハイブリッドをインストールするプラットフォームを選択してください。
instanceID: "
UNIQUE_INSTANCE_IDENTIFIER " namespace:APIGEE_NAMESPACE # Usually "apigee" gcp: projectID:PROJECT_ID region:ANALYTICS_REGION k8sCluster: name:CLUSTER_NAME region:CLUSTER_LOCATION # Must be the closest Google Cloud region to your cluster. org:ORG_NAME # Required if using data residency with hybrid: contractProvider: https://CONTROL_PLANE_LOCATION -apigee.googleapis.com # Required if using data residency with hybrid: newDataPipeline: debugSession: true analytics: true envs: - name:ENVIRONMENT_NAME serviceAccountPaths: # Provide the path relative to the chart directory. synchronizer:NON_PROD_SERVICE_ACCOUNT_FILEPATH # For example: "PROJECT_ID -apigee-non-prod.json" runtime:NON_PROD_SERVICE_ACCOUNT_FILEPATH # For example: "PROJECT_ID -apigee-non-prod.json" udca:NON_PROD_SERVICE_ACCOUNT_FILEPATH # For example: "PROJECT_ID -apigee-non-prod.json" 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 Google Distributed Cloud on VMware or bare metal, GKE on AWS, # AKS, EKS, and OpenShift installations. # See Multi-region deployment: Prerequisites replicaCount:1 # Use 1 for non-prod or "demo" installations and multiples of 3 for production. # See Configure Cassandra for production for guidelines. 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 #260772383SVC_ANNOTATIONS_KEY :SVC_ANNOTATIONS_VALUE virtualhosts: - name:ENVIRONMENT_GROUP_NAME selector: app: apigee-ingressgateway ingress_name:INGRESS_NAME sslCertPath:PATH_TO_CERT_FILE sslKeyPath:PATH_TO_KEY_FILE mart: serviceAccountPath:NON_PROD_SERVICE_ACCOUNT_FILEPATH # Provide the path relative to the chart directory. # For example: "PROJECT_ID -apigee-non-prod.json" connectAgent: serviceAccountPath:NON_PROD_SERVICE_ACCOUNT_FILEPATH # Provide the path relative to the chart directory. # Use the same service account for mart and connectAgent # For example: "PROJECT_ID -apigee-non-prod.json" logger: enabled:true # enabled by default # See apigee-logger in Service accounts and roles used by hybrid components. serviceAccountPath:NON_PROD_SERVICE_ACCOUNT_FILEPATH # Provide the path relative to the chart directory. # For example: "PROJECT_ID -apigee-non-prod.json" metrics: serviceAccountPath:NON_PROD_SERVICE_ACCOUNT_FILEPATH # Provide the path relative to the chart directory. # For example: "PROJECT_ID -apigee-non-prod.json" udca: serviceAccountPath:NON_PROD_SERVICE_ACCOUNT_FILEPATH # Provide the path relative to the chart directory. # For example: "PROJECT_ID -apigee-non-prod.json" watcher: serviceAccountPath:NON_PROD_SERVICE_ACCOUNT_FILEPATH # Provide the path relative to the chart directory. # For example: "PROJECT_ID -apigee-non-prod.json"これは、Workload Identity を使用して GKE に本番環境をインストールする場合のテンプレートです。
overrides.yaml
ファイルが以下の構造と構文になっていることを確認します。red, bold italics の値は、指定する必要があるプロパティ値です。これらの値は編集可能です。詳しくは次の表をご覧ください。GKE に Apigee ハイブリッドをインストールする場合は、代わりに Workload Identity を使用して Google API の認証およびリクエストの発行を行うことができます。Workload Identity の概要については、以下をご覧ください。
Workload Identity を GKE 上の Apigee ハイブリッドで使用する場合は、このテンプレートを使用します。ステップ 10: Helm チャートを使用して Apigee ハイブリッドをインストールするの説明に従って Kubernetes サービス アカウントを作成し、それをステップ 4: サービス アカウントと認証情報を作成するで作成した Google サービス アカウントに関連付けます。
instanceID: "
UNIQUE_INSTANCE_IDENTIFIER " namespace:APIGEE_NAMESPACE # Usually "apigee" gcp: projectID:PROJECT_ID region:ANALYTICS_REGION workloadIdentity: enabled: true k8sCluster: name:CLUSTER_NAME region:CLUSTER_LOCATION # Must be the closest Google Cloud region to your cluster. org:ORG_NAME # Required if using data residency with hybrid: contractProvider: https://CONTROL_PLANE_LOCATION -apigee.googleapis.com # Required if using data residency with hybrid: newDataPipeline: debugSession: true analytics: true envs: - name:ENVIRONMENT_NAME gsa: synchronizer: "SYNCHRONIZER_SERVICE_ACCOUNT_EMAIL " # For example: "apigee-synchronizer@PROJECT_ID .iam.gserviceaccount.com" runtime: "RUNTIME_SERVICE_ACCOUNT_EMAIL " # For example: "apigee-runtime@PROJECT_ID .iam.gserviceaccount.com" udca: "UDCA_SERVICE_ACCOUNT_EMAIL " # For example: "apigee-udca@PROJECT_ID .iam.gserviceaccount.com" 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 Google Distributed Cloud on VMware or bare metal, GKE on AWS, # 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. backup: enabled: true # Set to true for initial installation. # This triggers the chart to create the apigee-cassandra-backup Kubernetes service account when you install it. # See Cassandra backup overview for instructions on using cassandra.backup. 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 #260772383SVC_ANNOTATIONS_KEY :SVC_ANNOTATIONS_VALUE virtualhosts: - name:ENVIRONMENT_GROUP_NAME selector: app: apigee-ingressgateway ingress_name:INGRESS_NAME sslCertPath:PATH_TO_CERT_FILE sslKeyPath:PATH_TO_KEY_FILE mart: gsa: "MART_SERVICE_ACCOUNT_EMAIL " # For example: "apigee-mart@PROJECT_ID .iam.gserviceaccount.com" connectAgent: gsa: "MART_SERVICE_ACCOUNT_EMAIL " # Use the same service account for mart and connectAgent # For example: "apigee-mart@PROJECT_ID .iam.gserviceaccount.com" logger: enabled:true # enabled by default # See apigee-logger in Service accounts and roles used by hybrid components. gsa: "LOGGER_SERVICE_ACCOUNT_EMAIL " # For example: "apigee-logger@PROJECT_ID .iam.gserviceaccount.com" metrics: gsa: "METRICS_SERVICE_ACCOUNT_EMAIL " # For example: "apigee-metrics@PROJECT_ID .iam.gserviceaccount.com" udca: gsa: "UDCA_SERVICE_ACCOUNT_EMAIL " # For example: "apigee-udca@PROJECT_ID .iam.gserviceaccount.com" watcher: gsa: "WATCHER_SERVICE_ACCOUNT_EMAIL " # For example: "apigee-watcher@PROJECT_ID .iam.gserviceaccount.com"これは、Workload Identity を使用して GKE に非本番環境をインストールする場合のテンプレートです。
overrides.yaml
ファイルが以下の構造と構文になっていることを確認します。red, bold italics の値は、指定する必要があるプロパティ値です。これらの値は編集可能です。詳しくは次の表をご覧ください。GKE に Apigee ハイブリッドをインストールする場合は、代わりに Workload Identity を使用して Google API の認証およびリクエストの発行を行うことができます。Workload Identity の概要については、以下をご覧ください。
Workload Identity を GKE 上の Apigee ハイブリッドで使用する場合は、このテンプレートを使用します。ステップ 10: Helm チャートを使用して Apigee ハイブリッドをインストールするの説明に従って Kubernetes サービス アカウントを作成し、それをステップ 4: サービス アカウントと認証情報を作成するで作成した Google サービス アカウントに関連付けます。
instanceID: "
UNIQUE_INSTANCE_IDENTIFIER " namespace:APIGEE_NAMESPACE # Usually "apigee" gcp: projectID:PROJECT_ID region:ANALYTICS_REGION workloadIdentity: enabled: true gsa: "NON_PROD_SERVICE_ACCOUNT_EMAIL " # For example: "apigee-non-prod@PROJECT_ID .iam.gserviceaccount.com" k8sCluster: name:CLUSTER_NAME region:CLUSTER_LOCATION # Must be the closest Google Cloud region to your cluster. org:ORG_NAME # Required if using data residency with hybrid: contractProvider: https://CONTROL_PLANE_LOCATION -apigee.googleapis.com # Required if using data residency with hybrid: newDataPipeline: debugSession: true analytics: true instanceID: "UNIQUE_INSTANCE_IDENTIFIER " cassandra: hostNetwork:false # false for all GKE installations. # See Multi-region deployment: Prerequisites replicaCount:1 # Use 1 for non-prod or "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 the chart to create the apigee-cassandra-backup Kubernetes service account when you install it. # See Cassandra backup overview for instructions on using cassandra.backup. virtualhosts: - name:ENVIRONMENT_GROUP_NAME selector: app: apigee-ingressgateway ingress_name:INGRESS_NAME sslCertPath:PATH_TO_CERT_FILE sslKeyPath:PATH_TO_KEY_FILE ingressGateways: - name:INGRESS_NAME # maximum 17 characters. replicaCountMin: 2 replicaCountMax: 10 svcAnnotations: # optional. If you are on AKS, see Known issue #260772383SVC_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.以下の例は、サンプル プロパティの値が追加された完成後のオーバーライド ファイルを示しています。
instanceID: "my_hybrid_example" namespace: apigee gcp: projectID: hybrid-example region: us-central1 k8sCluster: name: apigee-hybrid region: us-central1 org: hybrid-example # Required if using data residency with hybrid: contractProvider: https://
CONTROL_PLANE_LOCATION -apigee.googleapis.com # Required if using data residency with hybrid: newDataPipeline: debugSession: true analytics: true envs: - name: test serviceAccountPaths: synchronizer:my-hybrid-project-apigee-synchronizer.json runtime: my-hybrid-project-apigee-runtime.json udca: my-hybrid-project-apigee-udca.json cassandra: hostNetwork: false replicaCount: 3 ingressGateways: - name: my-ingress-1 replicaCountMin: 2 replicaCountMax: 10 virtualhosts: - name: example-env-group selector: app: apigee-ingressgateway ingress_name: my-ingress-1 sslCertPath: certs/keystore.pem sslKeyPath: certs/keystore.key logger: enabled: true # Set to "false" for GKE. Set to "true" for all other Kubernetes platforms. serviceAccountPath: apigee-telemetry/my-hybrid-project-apigee-logger.json mart: serviceAccountPath: my-hybrid-project-apigee-mart.json connectAgent: serviceAccountPath: my-hybrid-project-apigee-mart.json metrics: serviceAccountPath: my-hybrid-project-apigee-metrics.json udca: serviceAccountPath: my-hybrid-project-apigee-udca.json watcher: serviceAccountPath: my-hybrid-project-apigee-watcher.json - 完了したらファイルを保存します。
次の表に、オーバーライド ファイルで指定する必要があるプロパティ値を示します。詳細については、構成プロパティのリファレンスをご覧ください。
変数 | 説明 | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
UNIQUE_INSTANCE_IDENTIFIER | このインスタンスを識別する一意の文字列。文字と数字の組み合わせを使用できます。長さは 63 文字以下にします。 同じクラスタ内に複数の組織を作成できますが、 |
|||||||||||||||||||||||||||
APIGEE_NAMESPACE | Apigee ハイブリッド コンポーネントの Kubernetes Namespace。 デフォルト値は |
|||||||||||||||||||||||||||
ANALYTICS_REGION | GKE では、この値は、クラスタが稼働しているリージョンと同じリージョンに設定する必要があります。その他のプラットフォームでは、アナリティクスをサポートするクラスタに最も近い分析リージョンを選択します(パート 1: ステップ 2: 組織を作成するの表を参照)。 これは、以前に環境変数 |
|||||||||||||||||||||||||||
PROJECT_ID | apigee-logger と apigee-metrics がデータを push する Google Cloud プロジェクトを指定します。この値は、環境変数 PROJECT_ID に割り当てられます。 |
|||||||||||||||||||||||||||
CLUSTER_NAME | Kubernetes クラスタ名。この値は、環境変数 CLUSTER_NAME に割り当てられます。 |
|||||||||||||||||||||||||||
CLUSTER_LOCATION | クラスタが実行されているリージョン。これは、ステップ 1: クラスタを作成するでクラスタを作成したリージョンです。 これは、以前に環境変数 |
|||||||||||||||||||||||||||
ORG_NAME | Apigee ハイブリッド組織の ID。これは、環境変数 ORG_NAME に割り当てられた値です。 |
|||||||||||||||||||||||||||
CONTROL_PLANE_LOCATION | Apigee ハイブリッド インストールでデータ所在地を使用している場合は必須です。お客様のコアコンテンツ(プロキシ バンドルなど)が保存される場所。リストについては、使用可能な Apigee API コントロール プレーンのリージョンをご覧ください。これは、ステップ 2: 組織を作成するで CONTROL_PLANE_LOCATION 環境変数に割り当てられた値です。 |
|||||||||||||||||||||||||||
ENVIRONMENT_GROUP_NAME | 環境が割り当てられている環境グループの名前。これは、プロジェクトと組織の設定 - ステップ 3: 環境グループを作成するで作成したグループです。この値は、環境変数 ENV_GROUP に割り当てられます。
|
|||||||||||||||||||||||||||
PATH_TO_CERT_FILE PATH_TO_KEY_FILE |
ステップ 5: TLS 証明書を作成するで生成した自己署名 TLS 鍵と証明書ファイルのパスとファイル名を入力します。これらのファイルは、APIGEE_HELM_CHARTS_HOME/apigee-virtualhosts/certs ディレクトリに配置する必要があります。次に例を示します。sslCertPath: certs/keystore.crt sslKeyPath: certs/keystore.key |
|||||||||||||||||||||||||||
INGRESS_NAME | デプロイの Apigee Ingress ゲートウェイの名前。次の要件を満たす任意の名前を使用できます。
構成プロパティ リファレンスの |
|||||||||||||||||||||||||||
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 | 対応するチャート ディレクトリ内のサービス アカウント JSON ファイルのパスとファイル名。チャート ディレクトリへの相対パスを使用して名前を指定します。次に例を示します。
非本番環境の場合は、デフォルトでは 1 つのサービス アカウントの名前は 本番環境の場合は、ステップ 4: サービス アカウントを作成するで サービス アカウント ファイルは、対応する各チャート ディレクトリで確認できます。 デフォルトの名前と、サービス アカウントに対応するチャート ディレクトリは次のとおりです。
|
|||||||||||||||||||||||||||
*_SERVICE_ACCOUNT_EMAIL | GKE で Workload Identity を使用する場合に指定する Google サービス アカウント(GSA)のメールアドレス。これらは、ステップ 4: サービス アカウントを作成するで作成したサービス アカウントです。サービス アカウントのメールアドレスは、次のコマンドで確認できます。gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee" |
まとめ
構成ファイルを使用して、ハイブリッド コンポーネントをクラスタにデプロイする方法を Kubernetes に指示します。次のステップでは、Apigee ランタイムと管理プレーンが通信できるように Synchronizer アクセスを有効にします。