ランタイム プレーン コンポーネントを管理する

このトピックでは、Apigee Hybrid のランタイム プレーン コンポーネントの構成方法と管理方法について説明します。構成できるランタイム プレーン コンポーネントの一覧については、ランタイム サービスの構成の概要をご覧ください。

オーバーライド ファイルについて

Hybrid ランタイムを初めてクラスタにインストールするときに、構成のオーバーライド ファイルを作成する必要があります。このファイルで、デフォルトの構成値を必要に応じてオーバーライドする、環境を構成する、TLS 証明書とサービス アカウント キーのパスを指定する、Kubernetes ノードプールを特定の Hybrid コンポーネントに割り当てる、といったことができます。

Hybrid のインストール手順を見ると、オーバーライド ファイルを作成して構成をクラスタに適用するプロセスがわかります。後で構成を変更する場合は、作成したオーバーライド ファイルを変更して再適用します。

構成の変更

Hybrid ランタイム プレーン コンポーネントの構成を変更するには、オーバーライド ファイルを編集し、apigeectl を使用して変更を適用します。

たとえば、Message Processor のレプリカ数を変更する手順は次のとおりです。

  1. オーバーライド YAML ファイルを開きます。必ず Hybrid ランタイムをクラスタにインストールしたときに使用したものと同じオーバーライド ファイルを使用してください。
  2. ファイル内で runtime 要素を探します。次に例を示します。
    ...
        runtime:
          nodeSelector:
            key: cloud.google.com/gke-nodepool
            value: apigee-runtime
          replicaCountMin: 1
          replicaCountMax: 2
        ...
  3. レプリカ数のプロパティを必要に応じて変更します。次に例を示します。
    ...
        runtime:
          nodeSelector:
            key: cloud.google.com/gke-nodepool
            value: apigee-runtime
          replicaCountMin: 2
          replicaCountMax: 4
        ...
  4. apigeectl を使用して変更をクラスタに適用します。
    apigeectl apply -f ./my_overrides.yaml -c runtime

変更可能な構成プロパティ

構成可能なプロパティの一覧については、構成プロパティ リファレンスをご覧ください。このリファレンスに掲載されているのは変更可能なプロパティだけです。ここに掲載されていないプロパティを変更しようとしても、その変更は無視されます。

構成リファレンスの使用方法

構成プロパティ リファレンスでは、ドット表記を使用して構成要素が記載されています。最初の項目は最上位の要素名で、その後にプロパティと子プロパティが続きます。次に例を示します。

authz.image.pullPolicy

オーバーライド ファイルでは、プロパティは適切な YAML 形式で記述します。上記の例では、最上位の authz 要素が左にインデントされ、下位要素のプロパティはその下にインデントされています。また、YAML では、各要素と下位要素の末尾にコロンを付ける必要があります。

たとえば、authz.image.pullPolicy プロパティを Always に設定するには、オーバーライド ファイル内で該当する YAML スタンザを探して次のように設定します。

authz:
      image:
        pullPolicy: Always

次の例では、プロパティ cassandra.auth.admin.password(構成プロパティ リファレンスの表記に準拠)を使用して Cassandra 管理者パスワードを設定しています。これを変更するには、オーバーライド ファイル内で該当する YAML を探して次のように設定します。

cassandra:
      auth:
        admin:
          password: abc123

構成プロパティ リファレンスには Hybrid ランタイム プレーン コンポーネントで設定できるすべてのプロパティが掲載されていることを覚えておいてください。変更をクラスタに適用する前に、上記のパターンに従ってオーバーライド ファイルでこれらの要素を変更します。

事前定義されたサンプル オーバーライド ファイルの使用

Hybrid ランタイムの初回インストール時には、いずれかの事前定義されたサンプル オーバーライド ファイルを使用することをおすすめします。これらのサンプル ファイルには、本番環境やテスト環境のセットアップなど、具体的なインストール シナリオに合わせてすべての構成プロパティがあらかじめ記述されています。ユーザーが行うことは、プロパティに適切な値を設定してオーバーライド ファイルをクラスタに適用することだけです。詳細については、オーバーライド ファイルを作成するをご覧ください。

構成のデフォルトについて

デフォルトのコンポーネント構成は hybrid_root_dir/config/values.yaml というファイルに保持されています。オーバーライド ファイルは values.yaml と同じ YAML 構成に従います。

オーバーライド ファイルには通常、values.yaml に記述された構成プロパティの一部だけが含まれます。すべてのプロパティが編集可能なわけではないのでご注意ください。構成をクラスタに適用すると、オーバーライドがデフォルトと結合されて完全な Kubernetes クラスタ構成が作成されます。結合された構成を出力するもご覧ください。

次のコードは、values.yaml に含まれる mart コンポーネントのデフォルト構成を示します。デフォルト値が設定されているものもあれば、されていないものもあります(sslCertPathsslKeyPath など)。インストール手順で説明されているように、これらの値がないプロパティに値を設定する必要があります。デフォルト値を変更する場合は、構成プロパティ リファレンスを参照してそのプロパティが編集可能であることを確認してください。

...
    mart:
      replicaCountMin: 2
      replicaCountMax: 4
      targetCPUUtilizationPercentage: 75
      terminationGracePeriodSeconds: 30
      sslCertPath:
      sslKeyPath:
      hostAlias:
      nodeSelector:
        key:
        value:
      revision: blue
      image:
        url: "google/apigee-mart-server"
        tag: "1.0.0"
        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 をオーバーライド ファイルにコピーし、オーバーライド ファイルでプロパティを変更します。

サンプル オーバーライド ファイル

Apigee Hybrid には、Hybrid デプロイメントのセットアップに役立つサンプル オーバーライド ファイルがいくつか用意されています。インストール要件に最も近いオーバーライド ファイルをコピーしてそのファイルを変更することをおすすめします。

次のサンプル ファイルが hybrid_root_dir/examples ディレクトリにあります。

サンプル オーバーライド ファイル 説明
overrides-small.yaml このサンプルはすぐに使い始める場合に適しています。推奨される最小限のフットプリントで Hybrid ランタイム コンポーネントが起動するようになっています。このサンプル構成は、デフォルトの設定と値に可能な限り従っています。レプリカの最小数はすべて 1 に設定されています。
overrides-medium.yaml このサンプルは、テスト環境や QA 環境の出発点として適しています。追加のトラフィックを扱えるように、個々のコンポーネントにはより高レベルのリソースが与えられています。パフォーマンスを考慮して、Cassandra では SSD が使用されます。この環境では、ステートフル コンポーネントとステートレス コンポーネントを別々のノードにインストールすることをおすすめします。専用ノードを構成するをご覧ください。
overrides-large.yaml このサンプルは、本番前環境や本番環境などの高パフォーマンス環境の出発点として適しています。このサンプルには、暗号鍵やパスワードなどを設定するためのプロパティが含まれています。個々のコンポーネントには、少なくとも 2 つのレプリカがあります。

結合された構成を出力する

apigeectl--dry-run フラグを指定することで、実際には構成をクラスタに適用せずに、結合された構成ファイルを出力できます。この方法を使用すると、何がクラスタに適用されるかが正確に示されるため、インストールに関する問題のデバッグに役立ちます。また、構成を出力してソース管理システムに保存しておけば、クラスタにインストールされているリソースとその設定を後で参照できるので便利です。

次に例を示します。

apigeectl apply -f ./my_overrides.yaml --dry-run --print-yaml > apigee-hybrid.yaml

詳細については、apigeectl をご覧ください。

必要に応じて複数のオーバーライド ファイルを作成する

オーバーライド ファイルは、用途に合わせていくつでも作成できます。たとえば、本番環境クラスタを調整するためのオーバーライド ファイルと、テストクラスタを作成するためのオーバーライド ファイルを別々に用意できます。これらのファイルはソース管理システムで管理できます。

apigeectl-f オプションを使用して、オーバーライド ファイルの場所と名前を指定します。次に例を示します。

apigeectl apply  -f ./test_env_override.yaml

詳細については、apigeectl をご覧ください。

Hybrid に固有のランタイム プレーン コンポーネントを削除する

Hybrid に固有のランタイム プレーン コンポーネントをクラスタから削除するには、apigeectl delete コマンドを使用します。これには、synchronizer、mart、runtime、cassandra、udca などのコンポーネントが該当します。必ずこれらのランタイム コンポーネントのインストールに使用したものと同じオーバーライド ファイルを指定してください。

次に例を示します。

apigeectl delete -f ./my_overrides.yaml

apigeectl apply コマンドを使用して、特定のコンポーネントを再作成できます。

apigeectl apply -c synchronizer -f ./my_overrides.yaml

詳細については、apigeectl をご覧ください。

特定のコンポーネントを削除する

特定のコンポーネントのみを削除する場合は、apigeectl delete-c オプションを使用します。必ずそのランタイム コンポーネントのインストールに使用したものと同じオーバーライド ファイルを指定してください。

たとえば、Synchronizer コンポーネントを削除するには、次のコマンドを使用します。

apigeectl delete -c synchronizer -f ./my_overrides.yaml

その後、apigeectl apply コマンドを使用してコンポーネントを再作成できます。

apigeectl apply -c synchronizer -f ./my_overrides.yaml

詳細については、apigeectl をご覧ください。

すべてのコンポーネントを削除する

Hybrid のすべてのクラスタ コンポーネント(apigeectl init コマンドで作成されたものを含む)を削除するには、apigeectl delete コマンドで --all フラグを使用します。必ずそれらのランタイム コンポーネントのインストールに使用したものと同じオーバーライド ファイルを指定してください。

次に例を示します。

apigeectl delete -f ./my_overrides.yaml --all

詳細については、apigeectl をご覧ください。