このトピックでは、Apigee Hybrid のランタイム プレーン コンポーネントの構成と管理方法について説明します。構成できるランタイム プレーン コンポーネントの一覧については、ランタイム サービスの構成の概要をご覧ください。
オーバーライド ファイルについて
Hybrid ランタイムを初めてクラスタにインストールするときに、構成のオーバーライド ファイルを作成する必要があります。このファイルにより、デフォルトの構成値を必要に応じてオーバーライドする、環境を構成する、TLS 証明書とサービス アカウント キーのパスを指定する、Kubernetes ノードプールを特定のハイブリッド コンポーネントに割り当てるなどの操作が可能になります。
ハイブリッドのインストール手順を見ると、オーバーライド ファイルを作成してクラスタに構成を適用するプロセスがわかります。後で構成を変更する場合は、作成したオーバーライド ファイルを変更して再適用します。
構成の変更
ハイブリッド ランタイム プレーン コンポーネントの構成を変更するには、オーバーライド ファイルを編集し、Helm を使用してコンポーネントに対応するチャートをアップグレードします。次の表に、どのチャートがどの Apigee ハイブリッド コンポーネントに対応しているかを示します。
範囲 | コンポーネント | Helm チャート |
---|---|---|
Apigee オペレーター | Apigee オペレーター | apigee-operator |
ストレージ | Cassandra | apigee-datastore |
メモリ内ストレージ | Redis | apigee-redis |
レポート | Logger Metrics |
apigee-telemetry |
Ingress | Apigee Ingress ゲートウェイ | apigee-ingress-manager |
組織 | Apigee Connect Agent MART UDCA Watcher |
apigee-org |
環境 | Runtime Synchronizer |
apigee-env |
環境グループ | virtualhost | apigee-virtualhost |
たとえば、Message Processor のレプリカ数を変更する手順は次のとおりです。
- OVERRIDES
.yaml
ファイルを開きます。必ず Hybrid ランタイムをクラスタにインストールしたときに使用したものと同じオーバーライド ファイルを使用してください。 - ファイル内で
runtime
要素を探します。例:runtime: nodeSelector: key: cloud.google.com/gke-nodepool value: apigee-runtime replicaCountMin: 1 replicaCountMax: 2 ...
-
レプリカ数のプロパティを必要に応じて変更します。次に例を示します。
runtime: nodeSelector: key: cloud.google.com/gke-nodepool value: apigee-runtime replicaCountMin: 2 replicaCountMax: 20 ...
- 環境をアップグレードします。
- ENV_RELEASE_NAME は、以前に
apigee-env
チャートをインストールしたときに使用した名前です。ハイブリッド v1.10 では通常、apigee-env-ENV_NAME
です。ハイブリッド v1.11 以降では、通常は ENV_NAME です。 - ENV_NAME はアップグレードする環境の名前です。
- OVERRIDES_FILE は、v.1.3.6 の新しいオーバーライド ファイルです。
- チャートをアップグレードします。
- それぞれの環境の状態をチェックして、稼働していることを確認します。
同時にインストールできる環境は 1 つだけです。--set env=
ENV_NAME で環境を指定します。
ドライランを実行します。
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE \ --dry-run=server
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE
kubectl -n APIGEE_NAMESPACE get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-org1-dev-xxx running 2d
変更可能な構成プロパティ
構成可能なプロパティの一覧については、構成プロパティ リファレンスをご覧ください。このリファレンスに掲載されているのは変更可能なプロパティだけです。ここに掲載されていないプロパティを変更しようとしても、その変更は無視されます。
構成リファレンスの使用方法
構成プロパティ リファレンスでは、ドット表記を使用して構成要素を記述します。最初の項目は、最上位の要素名の後ろにプロパティと子プロパティが続いています。次に例を示します。
ao.image.pullPolicy
オーバーライド ファイルでは、プロパティは適切な YAML にフォーマットされます。上記の例では、最上位の ao
要素が左にインデントされ、下位要素のプロパティはその下にインデントされています。YAML では、各要素と下位要素の末尾にコロンを付ける必要があります。
たとえば、ao.image.pullPolicy
プロパティを Always
に設定するには、オーバーライド ファイル内で該当する YAML スタンザを探して次のように設定します。
ao: image: pullPolicy: Always
次の例では、プロパティ cassandra.auth.admin.password
(構成プロパティのリファレンスの表記に準拠)を使用して Cassandra の管理者パスワードを設定しています。これを変更するには、オーバーライド ファイル内で次の YAML を探して次のように設定します。
cassandra: auth: admin: password: abc123
構成プロパティ リファレンスには Hybrid ランタイム プレーン コンポーネントで設定できるすべてのプロパティが掲載されています。変更をクラスタに適用する前に、上記のパターンに従ってオーバーライド ファイルでこの要素を変更します。
事前定義されたサンプル オーバーライド ファイルの使用
Hybrid ランタイムの初回インストール時には、いずれかの事前定義されたサンプル オーバーライド ファイルを使用することをおすすめします。 これらのサンプル ファイルには、本番環境やテスト環境のセットアップなど、具体的なインストール シナリオに合わせてすべての構成プロパティがあらかじめ記述されています。ユーザーが行うことは、プロパティに適切な値を設定してオーバーライド ファイルをクラスタに適用することだけです。詳細については、ステップ 6: オーバーライドを作成するをご覧ください。
構成のデフォルトについて
デフォルトのコンポーネント構成は HYBRID_ROOT_DIR/config/values.yaml
というファイルに保持されています。オーバーライド ファイルは values.yaml
と同じ YAML 構造です。
通常、オーバーライド ファイルには values.yaml
に記述された構成プロパティの一部だけが含まれます。すべてのプロパティが編集可能なわけではないのでご注意ください。構成をクラスタに適用すると、オーバーライドがデフォルトと結合されて完全な Kubernetes クラスタ構成が作成されます。結合された構成をテストするもご覧ください。
次のコードは、values.yaml
に含まれる mart
コンポーネントのデフォルト構成を示します。デフォルト値が設定されているものもあれば、されていないものもあります(sslCertPath
や sslKeyPath
など)。インストール手順で説明されているように、値がないプロパティに値を設定する必要があります。デフォルト値を変更する場合は、構成プロパティのリファレンスを参照して、そのプロパティが編集可能であることを確認してください。
... mart: replicaCountMin: 2 replicaCountMax: 4 targetCPUUtilizationPercentage: 75 terminationGracePeriodSeconds: 30 sslCertPath: sslKeyPath: hostAlias: nodeSelector: key: value: revision: blue image: url: "gcr.io/apigee-release/hybrid/apigee-mart-server" tag: "1.3.6" pullPolicy: IfNotPresent resources: requests: cpu: 500m memory: 512Mi initCheckCF: resources: requests: cpu: 10m livenessProbe: timeoutSeconds: 1 failureThreshold: 12 periodSeconds: 5 initialDelaySeconds: 15 readinessProbe: timeoutSeconds: 1 successThreshold: 1 failureThreshold: 2 periodSeconds: 5 initialDelaySeconds: 15 metricsURL: "/v1/server/metrics" cwcAppend: | ...
コンポーネントのデフォルトを変更するときに、そのコンポーネントがオーバーライド ファイルに含まれていない場合は、values.yaml
から該当する YAML をオーバーライド ファイルにコピーし、オーバーライド ファイルでプロパティを変更します。
カスタム アノテーション
Annotations は、Apigee ハイブリッド Kubernetes Pod にメタデータを追加するために使用する Key-Value マップです。構成プロパティのリファレンスに記載されている次のプロパティについては、カスタム アノテーションを作成できます。
カスタム アノテーションを追加するには、それぞれのコンポーネントの OVERRIDES.yaml
ファイルにスタンザを追加します。
次の例は、runtime
Pod でアノテーションを指定する方法を示しています。
runtime: annotations: businessunit: "bu1"
結合された構成をテストする
--dry-run
フラグを使用すると、結合された構成ファイルを、実際にクラスタに適用せずにテストできます。この方法を使用すると、何がクラスタに適用されるかが正確に示されるため、インストールに関する問題のデバッグに役立ちます。また、構成をテストしてソース管理システムに保存しておくと、クラスタ内にインストールされて構成されているリソースを後で参照できるので便利です。
kubectl apply -k apigee-operator/etc/crds/default/
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE.yaml \ --dry-run=server
helm upgrade ingress-manager apigee-ingress-manager/ / --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE.yaml \ --dry-run=server
必要に応じて複数のオーバーライド ファイルを作成する
オーバーライド ファイルは、用途に合わせていくつでも作成できます。たとえば、本番環境クラスタを調整するためのオーバーライド ファイルと、テストクラスタを作成するためのオーバーライド ファイルを別々に用意できます。これらのファイルをソース管理システム内に保持できます。
例:
helm upgrade test-1-env apigee-env/ \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=test-1-env \ -f test-1-env-overrides.yaml
ハイブリッド固有のランタイム プレーン コンポーネントを削除する
ランタイム プレーン コンポーネントは、synchronizer
、mart
、runtime
、cassandra
、udca
などがあります。
ハイブリッドに固有のランタイム プレーン コンポーネントをクラスタから削除するには、helm delete
コマンドを使用します。そのランタイム コンポーネントのインストールに使用したのと同じオーバーライド ファイルを指定してください。
例:
Helm を使用するときは、各コンポーネントを個別に削除する必要があります。たとえば、cassandra
コンポーネントを削除するには、次のコマンドを使用します。
helm -n APIGEE_NAMESPACE delete datastore
上記の例では、データストア コンポーネントは「datastore」という名前でインストールされています。別の名前でインストールした場合は、その名前を指定してコンポーネントを削除します。たとえば、helm install my-cassandra-storage apigee-datastore/
を使用して apigee-datastore
チャートをインストールした場合は、削除には次のコマンドを使用します。
helm delete -n apigee my-cassandra-storage
特定のコンポーネント(この例では環境グループ)を再作成するには:
helm upgrade ENV_GROUP apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE.yaml