このドキュメントでは、Google Distributed Cloud(GDC)エアギャップでプローブ用の外部ターゲットを構成する方法について説明します。システムは、特定の Kubernetes ConfigMap を読み取って、これらのターゲットを検出してモニタリングします。
始める前に
ConfigMap を gpc-system Namespace に適用するには、クラスタへのアクセス権と、その Namespace で ConfigMap を作成または変更する権限が必要です。また、Management API サーバー クラスタの kubeconfig ファイルのパスも必要です。外部ターゲット プローブは、root-admin クラスタまたは org-admin クラスタでのみ構成できます。
ConfigMap の詳細について
プローバーは、次の特性を持つ ConfigMap を探します。
- 名前:
pnet-external-probe-targets-config - 名前空間:
gpc-system - データキー: ConfigMap の
dataフィールドにtargets.yamlという名前のキーが含まれている必要があります。このキーに関連付けられた値は、プローブ ターゲットを定義する YAML 文字列である必要があります。
targets.yaml 構造について
targets.yaml コンテンツは、オブジェクトの YAML リストである必要があります。各オブジェクトは 1 つの外部プローブ ターゲットを表し、次の構造に従います。
- name: <unique-probe-name>
spec:
target: <hostname-or-ip>
probeType: <TCP or ICMP>
port: <port-number> # Required for TCP, ignored for ICMP
interval: <duration> # e.g., "10s", "1m"
timeout: <duration> # Optional, e.g., "5s". Defaults to 5s if not set.
フィールドの詳細は次のとおりです。
name(文字列): この特定のプローブ ターゲットの一意の識別子。spec: プローブ パラメータを定義します。target(文字列): プローブする外部ターゲットのホスト名または IP アドレス。probeType(文字列): 実行するプローブのタイプ。サポートされている値は次のとおりです。TCP: 指定されたtargetとportへの TCP 接続を試みます。ICMP:targetに ICMP エコー リクエスト(ping)を送信します。
port(int32): TCP プローブに使用するポート番号。このフィールドはprobeTypeがTCPの場合に必須であり、ICMPプローブでは無視されます。interval(文字列): プローブを実行する頻度。これは、有効な Kubernetesmetav1.Duration文字列(例:"5s"、"1m30s")に含めることが可能です。timeout(文字列、省略可): 1 回のプローブ試行が完了するまでの最大待機時間。これもmetav1.Duration文字列です。指定しない場合、デフォルトのタイムアウト(5s)が使用されます。
ConfigMap を作成して適用する
ConfigMap を作成または更新する手順は次のとおりです。
external-probe-configmap.yamlという名前の YAML ファイルを作成します。次の例では、3 つのプローブ ターゲットを定義しています。apiVersion: v1 kind: ConfigMap metadata: name: pnet-external-probe-targets-config namespace: gpc-system data: targets.yaml: | - name: "example-tcp-server" spec: target: "192.0.2.1" probeType: "TCP" port: 80 interval: "10s" timeout: "3s" - name: "example-icmp-host" spec: target: "8.8.8.8" probeType: "ICMP" interval: "30s" - name: "another-tcp-service" spec: target: "my-service.example.com" probeType: "TCP" port: 443 interval: "1m" # Using default timeout of 5sConfigMap をクラスタに適用します。
kubectl apply -f external-probe-configmap.yaml -n gpc-system --kubeconfig=MANAGEMENT_API_SERVERMANAGEMENT_API_SERVERは、Management API サーバーの kubeconfig ファイルへのパスに置き換えます。
プローバーは、この ConfigMap の変更を自動的に検出し、定義されたターゲットに基づいてプローブ プロセスを開始、停止、更新します。