TimesTen KubernetesオペレータおよびTimesTenエクスポータの概要

TimesTenオペレータは、TimesTenエクスポータをサポートしており、このTimesTenエクスポータを使用するようにTimesTenClassicオブジェクトおよびTimesTenScaleoutオブジェクトを構成できます。構成すると、TimesTenオペレータはTimesTenエクスポータを起動、停止および管理します。TimesTenエクスポータは、Kubernetes環境で実行されているTimesTenデータベースからメトリックを収集するため、TimesTenオペレータは、これらのメトリックをPrometheusに公開します。

TimesTenエクスポータは、独自のexporterコンテナで実行されます。このコンテナは、ttコンテナおよびdaemonlogコンテナと同じTimesTenポッドに存在します。これらのTimesTenポッドは、Kubernetesクラスタで実行されます。

TimesTenオペレータは、KubernetesのshareProcessNamespaceポッド属性を使用してTimesTenを実行しているポッドを作成します。この属性により、exporterコンテナで実行されているTimesTenエクスポータが、ttコンテナで実行されているTimesTenにアクセスできるようになります。どちらもTimesTenポッドに存在します。shareProcessNamespace属性の詳細は、Kubernetesドキュメントのポッド内のコンテナ間でのプロセス・ネームスペースの共有を参照してください。

TimesTenオペレータは、ttコンテナおよびdaemonlogコンテナと同じTimesTenコンテナ・イメージを使用してexporterコンテナを構成します。TimesTenエクスポータが失敗または終了すると、Kubernetesはexporterコンテナを破棄し、そのかわりとなる別のコンテナを作成します。Kubernetesは、exporterコンテナを監視および管理します。ポッド内の個々のコンテナのライフサイクルは独立しているため、TimesTenオペレータはTimesTenの後にttExporterコマンドが開始されるようにします。TimesTenオペレータは、TimesTenエージェントがTimesTenインスタンスを作成するまで待機し、TimesTenメイン・デーモンがTimesTenポッドのttコンテナで実行されるまで待機します。オペレータは次に、同じTimesTenポッドのexporterコンテナでTimesTenエクスポータを起動します。

構成後、TimesTenエクスポータはhttpまたはhttpsサーバーとして機能します。受信GETリクエストをリスニングし、TimesTenから一連のメトリックを収集して応答します。次に、これらのメトリックをGETリクエストに対するレスポンスとして返します。

リスニング・プロセスを容易にするために、TimesTenオペレータはKubernetes headlessサービスを作成します。このサービスは、TimesTenエクスポータが残りのKubernetesクラスタをリスニングしているポートを公開します。これにより、クラスタ内で実行されているPrometheusサーバーがTimesTenからTimesTenメトリックをフェッチして処理できるようになります。