外部プローブ ターゲットを構成する

このドキュメントでは、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: 指定された targetport への TCP 接続を試みます。
      • ICMP: target に ICMP エコー リクエスト(ping)を送信します。
    • port(int32): TCP プローブに使用するポート番号。このフィールドは probeTypeTCP の場合に必須であり、ICMP プローブでは無視されます。
    • interval(文字列): プローブを実行する頻度。これは、有効な Kubernetes metav1.Duration 文字列(例: "5s""1m30s")に含めることが可能です。
    • timeout(文字列、省略可): 1 回のプローブ試行が完了するまでの最大待機時間。これも metav1.Duration 文字列です。指定しない場合、デフォルトのタイムアウト(5s)が使用されます。

ConfigMap を作成して適用する

ConfigMap を作成または更新する手順は次のとおりです。

  1. 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 5s
    
  2. ConfigMap をクラスタに適用します。

    kubectl apply -f external-probe-configmap.yaml -n gpc-system --kubeconfig=MANAGEMENT_API_SERVER
    

    MANAGEMENT_API_SERVER は、Management API サーバーの kubeconfig ファイルへのパスに置き換えます。

プローバーは、この ConfigMap の変更を自動的に検出し、定義されたターゲットに基づいてプローブ プロセスを開始、停止、更新します。