構成のオーバーライドを指定する
Apigee ハイブリッド インストーラでは、多くの設定でデフォルトが使用されます。ただし、デフォルトがない設定もあります。その場合、次の値を指定する必要があります。
準備
次のシナリオを確認して、クラスタを構成するかどうかを判断することをおすすめします。これらの構成は省略可能です。
- 複数のリージョンにハイブリッドをインストールする予定の場合は、先に進む前にマルチリージョン デプロイをご覧ください。
- Apigee ハイブリッドでは、Cassandra ユーザーにデフォルト パスワードが用意されています。デフォルトのユーザー パスワードを変更することをおすすめします。詳細については、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 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 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. 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 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 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 GKE On-prem, GKE on AWS, Anthos on bare metal, # 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 #260772383 SVC_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
これは、Workload Identity を使用して GKE に本番環境をインストールする場合のテンプレートです。
overrides.yaml
ファイルが以下の構造と構文になっていることを確認します。red, bold italics の値は、指定する必要があるプロパティ値です。これらの値は編集可能です。詳しくは次の表をご覧ください。GKE に Apigee ハイブリッドをインストールする場合は、代わりに Workload Identity を使用して Google API の認証およびリクエストの発行を行うことができます。Workload Identity の概要については、以下をご覧ください。
Workload Identity を GKE 上の Apigee ハイブリッドで使用する場合は、このテンプレートを使用します。ステップ 11: 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 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 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. 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 #260772383 SVC_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
これは、Workload Identity を使用して GKE に非本番環境をインストールする場合のテンプレートです。
overrides.yaml
ファイルが以下の構造と構文になっていることを確認します。red, bold italics の値は、指定する必要があるプロパティ値です。これらの値は編集可能です。詳しくは次の表をご覧ください。GKE に Apigee ハイブリッドをインストールする場合は、代わりに Workload Identity を使用して Google API の認証およびリクエストの発行を行うことができます。Workload Identity の概要については、以下をご覧ください。
Workload Identity を GKE 上の Apigee ハイブリッドで使用する場合は、このテンプレートを使用します。ステップ 11: 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 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 #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.
例
以下の例は、サンプル プロパティの値が追加された完成後のオーバーライド ファイルを示しています。
instanceID: "my_hybrid_example" namespace: apigee gcp: projectID: hybrid-example region: us-central1 k8sCluster: name: apigee-hybrid region: us-central1 org: hybrid-example 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 に割り当てられます。 |
|||||||||||||||||||||||||||
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 アクセスを有効にします。
次のステップ
1 2 3 4 5 6 (次)ステップ 7: Synchronizer アクセスを有効にする 8 9 10 11 12