TimesTen Kubernetesオペレータからのメトリックの公開について
デフォルトでは、TimesTen Kubernetesオペレータは、独自の機能に関するメトリック、および管理するTimesTenClassicおよびTimesTenScaleoutオブジェクトのステータスを公開します。
TimesTenオペレータがどのようにこれを行うかを見てみましょう。デフォルトの動作を確認し、デフォルトの動作を変更する方法を確認しましょう。
デフォルトでは、TimesTenオペレータは次のことを行います。
-
独自の機能に関するメトリック、および管理対象のTimesTenClassicおよびTimesTenScaleoutオブジェクトの全体的なステータスをエクスポートして公開します。
-
https/Transport Layer Security (相互TLS)を使用して、これらのメトリックを使用可能にします。
-
TLSに必要な証明書、OracleウォレットおよびKubernetes Secretを自動的に作成します。
-
Prometheusオペレータがインストールされている場合は、Prometheusを自動的に変更するための適切なオブジェクトを作成し、PrometheusがTimesTenオペレータからメトリックをスクレイプするようにします。
-
TimesTenオペレータ・ポッド以外のメトリックを公開します。
このデフォルトの動作をお薦めしますが、デフォルトの動作を変更するオプションもあります。次のオプションを確認しましょう。
-
httpsとhttpのどちらか: TimesTenオペレータ・メトリックはhttps (デフォルト)またはhttpで使用できます。
-
Kubernetes ServiceMonitorオブジェクトを作成するか: PrometheusオペレータがKubernetesクラスタにインストールされていれば、TimesTenオペレータがKubernetes ServiceMonitorオブジェクトを作成できます。このオブジェクトには、PrometheusオペレータがTimesTenオペレータをスクレイプ・ターゲットとして構成するために必要な情報が含まれています。PrometheusオペレータがKubernetesクラスタにインストールされている場合は、デフォルトでTimesTenオペレータによってServiceMonitorオブジェクトが作成されます。
-
TimesTenオペレータ・ポッドの外部でTimesTenオペレータ・メトリックを公開するか: TimesTenオペレータは、
timesten-operator.mynamespace.svc.cluster.local:8080/metrics
エンドポイントでGETをリスニングし、受け入れます(mynamespace
はネームスペースの名前です)。デフォルトでは、TimesTenオペレータは、このエンドポイントをKubernetesクラスタ内の他のポッドで使用できるようにするKubernetesサービスをデプロイします。このサービスを作成しないことを選択できます。
次に、デフォルトの動作を変更する方法を見てみましょう。
TimesTenオペレータは、Kubernetesデプロイメントとしてネームスペースにデプロイされます。Oracleは、このデプロイメントをカスタマイズできるoperator.YAML
YAMLマニフェスト・ファイルを提供しています。このファイルは、TimesTenオペレータ・ディストリビューションのdeploy
ディレクトリにあります。詳細は、「TimesTenオペレータの概要」を参照してください。
operator.yaml
ファイルには、様々な環境変数が含まれています。これらの3つの変数は、TimesTenオペレータが自身の操作に関するメトリック、および管理対象のTimesTenClassicおよびTimesTenScaleoutオブジェクトのステータスをエクスポートするかどうか、およびどのようにエクスポートするかを制御します。
-
METRICS_SCHEME
: メトリックをhttpsとhttpのどちらで使用可能にするかを決定します。"https"
(デフォルト)に設定すると、httpsを使用します。"http"
に設定すると、httpを使用します。 -
CREATE_SERVICEMONITOR
: TimesTenオペレータがKubernetes ServiceMonitorオブジェクトを作成するかどうかを決定します(後の項を参照)。"1"
(デフォルト)に設定すると、TimesTenオペレータがServiceMonitorオブジェクトを作成します。"0"
に設定すると、TimesTenオペレータがServiceMonitorオブジェクトを作成しません。 -
EXPOSE_METRICS
: メトリックがTimesTenオペレータ・ポッドの外部で公開されるかどうかを決定します。"1"
(デフォルト)に設定すると、メトリックをTimesTenオペレータ・ポッドの外部で公開します。"0"
に設定すると、メトリックをTimesTenオペレータ・ポッドの外部で公開しません。
これらの環境変数の存在とデフォルト設定を示すoperator.yaml
ファイルのスニペットを見てみましょう。
# Copyright (c) 2019 - 2024, Oracle and/or its affiliates.
apiVersion: apps/v1
kind: Deployment
metadata:
name: timesten-operator
spec:
...
env:
...
- name: EXPOSE_METRICS
value: "1"
- name: METRICS_SCHEME
value: "https"
- name: EXPOSE_PROBES
value: "1"
- name: CREATE_SERVICEMONITOR
value: "1"
...
ノート:
TimesTenオペレータ・メトリックは、TimesTenオペレータ・デプロイメントに1つのTimesTenオペレータが定義されていれば正確です(operator.yaml
ファイル内のreplicas:1
)。