Kubernetes での ESCWA の使用

Kubernetes クラスターのポッドで ESCWA を実行する場合は、ESCWA の起動時に、追加のパラメーターを指定して、ESCWA で管理できるようにするディレクトリ サーバーを実行しているクラスター内の他のポッドを判別できます。

この追加パラメーターを使用する場合は、ラベルを指定します。その後、ESCWA は、Kubernetes API を使用し、クラスターで実行されているすべてのポッドに問い合わせて、指定されたラベルと一致するラベルをそのポッドが保持しているかどうかを確認します。指定された値と一致するラベルを持つ各ポッドは、ディレクトリ サーバーとして ESCWA にリストされます (ただし、そのポッドで Micro Focus Directory Server (MFDS) が実行されている必要があります)。

注: この機能は、Visual COBOL および COBOL Server のユーザーを主な対象としています。Enterprise Developer または Enterprise Server で実行されている場合、ESCWA では、関連するパフォーマンス/可用性クラスター (PAC) に問い合わせて、どのポッドに関する情報を表示するかを判別できます。

この機能は Enterprise Developer または Enterprise Server でも使用できますが、Micro Focus では、代わりに PAC からの情報を利用することをお勧めします。

追加パラメーターを指定するには、次の形式を使用して、ESCWA を起動するために実行する escwa コマンドにそのパラメーターを追加します。

--K8sConfig='{"Direct":Direct-value,
              "Port":"Port-value",
              "Namespace":"Namespace-value",
              "LabelEnvironment":LabelEnv-value,
              "Label":"Label-value"}'

このパラメーターの右側は、次の値を取るプロパティを含む JSON オブジェクトです。

Direct-value
ESCWA から Kubernetes に直接アクセスするか、kubectl proxy を実行するサイドカー コンテナーを経由するかを示すブール値。
Port-value
kubectl proxy を実行するサイドカー コンテナーを使用する場合に、サイドカー コンテナーで Kubernetes API を公開するためのポートを指定する文字列値。
Namespace-value
Kubernetes API に使用するネームスペースを指定する文字列値。
LabelEnv-value
次のようなブール値。
  • true の場合、Label プロパティを使用して、検索対象のラベルに設定されている環境変数の名前を指定することを示します。
  • false の場合、Label プロパティを使用して、検索対象のラベルを指定することを示します。
Label-value
次のいずれかを指定する文字列値。
  • 検索対象のラベルに設定されている環境変数の名前 ("LabelEnvironment":true が指定されている場合)。
  • 検索対象のラベル ("LabelEnvironment":false が指定されている場合)。

検索対象のラベルを指定する場合は、キーと値のペアを「%3D」で区切って指定します。Kubernetes ラベルの詳細については、Kubernetes ドキュメントの「Kubernetes: Labels and Selectors」を参照してください。

escwa --K8sConfig={"Direct":false,
                   "Port":"8001",
                   "LabelEnvironment":false,
                   "Label":"app%3Dmyapp-k8s-escwa",
                   "Namespace":"default"}' &
上のコマンド例では、ESCWA を起動し、次のことを ESCWA が行うように指定しています。
  • 直接ではなく、kubectl proxy を実行するサイドカー コンテナーを使用して Kubernetes にアクセスします。
  • サイドカー コンテナーによって公開される Kubernetes API にポート 8001 を使用します。
  • 環境変数から Label プロパティの値を読み取りません。
  • 「app : myapp-k8s-escwa」として定義されているラベルを確認します。
  • Kubernetes API にデフォルトのネームスペースを使用します。