構成のオーバーライドを指定する
Apigee ハイブリッド インストーラは、多くの設定でデフォルト値を使用しますが、デフォルト値がない設定もいくつかあります。その場合、次の値を指定する必要があります。
始める前に
次のシナリオを確認して、クラスタを構成するかどうかを判断することをおすすめします。これらの構成は省略可能です。
- 複数のリージョンにハイブリッドをインストールする予定の場合は、先に進む前にマルチリージョン デプロイをご覧ください。
- Apigee Hybrid では、Cassandra ユーザーにデフォルト パスワードが用意されています。ただし、デフォルトのユーザー パスワードを変更することをおすすめします。詳細については、Cassandra 用の TLS の構成をご覧ください。
- Cassandra のストレージとヒープの設定を構成する場合は、ストレージとヒープの設定を構成するをご覧ください。
- 本番環境のインストール シナリオでは、Cassandra の永続ソリッド ステート ディスク(SSD)ストレージを構成します。Apigee ハイブリッドはローカル SSD の使用をサポートしていません。詳細については、本番環境でのデプロイ用の SSD ストレージを追加するをご覧ください。
クラスタを構成する
慣例により、構成のオーバーライドは $HYBRID_FILES/overrides
ディレクトリ内の overrides.yaml
という名前のファイルに記述されます。
$HYBRID_FILES/overrides
ディレクトリにoverrides.yaml
という名前の新しいファイルを作成します。次に例を示します。vi $HYBRID_FILES/overrides/overrides.yaml
overrides.yaml
は、独自の Apigee ハイブリッド インストール用の構成を提供します。このステップのオーバーライド ファイルは、小規模なフットプリントのハイブリッド ランタイム インストールの基本的な構成を提供します。これは、最初のインストールに適しています。- 次のように、必須プロパティの値を
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" ao: image: url: "gcr.io/apigee-release/hybrid/apigee-operators" tag: "1.10.5-hotfix.1" # Required for Apigee hybrid v1.10.5 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" ao: image: url: "gcr.io/apigee-release/hybrid/apigee-operators" tag: "1.10.5-hotfix.1" # Required for Apigee hybrid v1.10.5 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" ao: image: url: "gcr.io/apigee-release/hybrid/apigee-operators" tag: "1.10.5-hotfix.1" # Required for Apigee hybrid v1.10.5 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" ao: image: url: "gcr.io/apigee-release/hybrid/apigee-operators" tag: "1.10.5-hotfix.1" # Required for Apigee hybrid v1.10.5 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
- 完了したらファイルを保存します。
次の表に、オーバーライド ファイルで指定する必要があるプロパティ値を示します。詳細については、構成プロパティのリファレンスをご覧ください。
変数 | 説明 |
---|---|
ANALYTICS_REGION | GKE では、この値は、クラスタが稼働しているリージョンと同じリージョンに設定する必要があります。その他のプラットフォームでは、アナリティクスをサポートするクラスタに最も近い分析リージョンを選択します(パート 1: ステップ 2: 組織を作成するの表を参照)。 これは、以前に環境変数 |
GCP_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 に割り当てられます。 |
UNIQUE_INSTANCE_IDENTIFIER | このインスタンスを識別する一意の文字列。任意の文字と数字の組み合わせで、長さは 63 文字以下にする必要があります。 同じクラスタ内に複数の組織を作成できますが、 |
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 ゲートウェイの名前。次の要件を満たす任意の名前を使用できます。
構成プロパティ リファレンスの |
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 つのサービス アカウントの名前は 本番環境の場合は、ハイブリッド ランタイムの設定 - ステップ 4: サービス アカウントと認証情報を作成するで サービス アカウント ファイルの一覧は 本番環境のサービス アカウントのデフォルト名は次のとおりです。
|
まとめ
構成ファイルを使用して、ハイブリッド コンポーネントをクラスタにデプロイする方法を Kubernetes に指示します。次のステップでは、Apigee ランタイムと管理プレーンが通信できるように Synchronizer アクセスを有効にします。
1 2 3 4 5 6 (次)ステップ 7: Synchronizer アクセスを有効にする 8 9 10 11