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メトリックをフェッチして処理できるようになります。