PodMonitorオブジェクトの作成について

デフォルトでは、PrometheusオペレータがKubernetesクラスタにインストールされている場合、TimesTenオペレータは、ネームスペースにTimesTenをプロビジョニングするときにPodMonitorオブジェクトを自動的に作成します。具体的には、TimesTenオペレータは、デプロイされたTimesTenClassicまたはTimesTenScaleoutオブジェクトごとにPodMonitorオブジェクトを自動的に作成します。

これにより、PrometheusにTimesTenメトリックを取得するために必要なすべてのステップが自動化されます。TimesTenオブジェクトが作成および削除されると、適切なスクレイプ・ターゲットが自動的にプロビジョニングされ、ユーザーが介入することなくPrometheus構成から削除されます。

これはお薦めしますが、オプションの機能です。Prometheusオペレータを使用しない場合は、TimesTenメトリックをPrometheusに自分でエクスポートできます。Prometheusオペレータは、TimesTenオペレータを使用するための前提条件ではありません。

Prometheusオペレータをインストールしてあり、TimesTenオペレータでPodMonitorオブジェクトを自動的に作成しない場合、TimesTenClassicまたはTimesTenScaleoutオブジェクトの.spec.ttspec.prometheus.createPodMonitorsデータ項目をfalseに設定します。

この機能は、TimesTenClassicまたはTimesTenScaleoutオブジェクトがhttpまたはhttpsを使用しているかどうかに関係なく使用できます。また、TimesTenオペレータが作成した証明書およびシークレットでも使用できます。

ただし、この機能は、TimesTenClassicまたはTimesTenScaleoutオブジェクト定義で.spec.ttspec.prometheus.certSecretデータ項目を指定した場合には使用できません。独自のOracle Walletを含む独自のKubernetes Secret(およびこのOracle Walletにhttpsの使用に必要な証明書が含まれている)を指定する場合、TimesTenオペレータは、PrometheusがTimesTenにアクセスするために十分な情報を含むPodMonitorオブジェクトを自動的に生成できません。この場合、独自のPodMonitorオブジェクトを作成するか、またはPrometheus構成ファイルを編集してTimesTenにアクセスし、TimesTenメトリックをスクレイプする必要があります。

TimesTenオペレータがPodMonitorオブジェクトを作成しようと試みても作成できない場合、TimesTenオペレータは適切なイベントを生成し、プロビジョニングおよびその他の通常の操作を続行します。これは、PrometheusオペレータがKubernetesクラスタにインストールされていない場合、またはTimesTenオペレータにKubernetesクラスタ内の適切なロールベースのアクセス制御(RBAC)権限が付与されていない場合に発生する可能性があります。RBAC権限の詳細は、https://kubernetes.io/docs/reference/access-authn-authz/rbac/を参照してください。

TimesTenオペレータによって作成されたPodMonitorオブジェクトには、適切なTimesTenClassicまたはTimesTenScaleoutオブジェクトに対する所有者参照があります。これにより、TimesTenClassicまたはTimesTenScaleoutオブジェクトを削除されたときにPodMonitorオブジェクトが自動的に削除されるようになります。

ノート:

.spec.ttspec.prometheus.createPodMonitorsデータ項目は、新しいTimesTenClassicおよびTimesTenScaleoutオブジェクトに追加できますが、(kubectl upgradeまたはkubectl patchコマンドまたはその他の方法を使用して)既存のTimesTenClassicおよびTimesTenScaleoutオブジェクトに追加することはできません。