設定外部探測目標

本文說明如何在 Google Distributed Cloud (GDC) 實體隔離環境中,設定探查的外部目標。系統會讀取特定的 Kubernetes ConfigMap,藉此探索及監控這些目標。

事前準備

如要將 ConfigMap 套用至 gpc-system 命名空間,您必須有權存取叢集,並具備在該命名空間中建立或修改 ConfigMap 的權限。您也需要管理 API 伺服器叢集的 kubeconfig 檔案路徑。 外部目標探測器只能在根管理員或機構管理員叢集中設定。

瞭解 ConfigMap 詳細資料

探測器會尋找具有下列特性的 ConfigMap:

  • 名稱:pnet-external-probe-targets-config
  • 命名空間: gpc-system
  • 資料鍵:ConfigMap 的 data 欄位中必須包含名為 targets.yaml 的鍵。與這個鍵相關聯的值必須是定義探測目標的 YAML 字串。

瞭解 targets.yaml 結構

targets.yaml 內容必須是物件的 YAML 清單。每個物件都代表單一外部探測目標,並遵循下列結構:

- 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 (字串):這個特定探測目標的專屬 ID。
  • spec定義探查參數:
    • target (字串):要探查的外部目標主機名稱或 IP 位址。
    • probeType (字串):要執行的探測類型。支援的值如下:
      • TCP:嘗試與指定的 targetport 建立 TCP 連線。
      • ICMP:將 ICMP 回應要求 (連線偵測) 傳送至 target
    • port (int32):用於 TCP 探查的通訊埠編號。如果 probeTypeTCP,則此欄位為必填欄位,但系統會忽略 ICMP 探測。
    • interval (字串):探測作業的執行頻率。這必須是有效的 Kubernetes metav1.Duration 字串 (例如 "5s""1m30s")。
    • timeout (字串,選用):單一探查嘗試完成作業的最長等待時間。這也是 metav1.Duration 字串。如未指定,系統會使用預設逾時時間 5s

建立並套用 ConfigMap

如要建立或更新 ConfigMap,請按照下列步驟操作:

  1. 建立名為 external-probe-configmap.yaml 的 YAML 檔案。以下範例定義了三個探測目標:

    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 的變更,並根據定義的目標啟動、停止或更新探測程序。