本文說明如何在 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:嘗試與指定的target和port建立 TCP 連線。ICMP:將 ICMP 回應要求 (連線偵測) 傳送至target。
port(int32):用於 TCP 探查的通訊埠編號。如果probeType為TCP,則此欄位為必填欄位,但系統會忽略ICMP探測。interval(字串):探測作業的執行頻率。這必須是有效的 Kubernetesmetav1.Duration字串 (例如"5s"、"1m30s")。timeout(字串,選用):單一探查嘗試完成作業的最長等待時間。這也是metav1.Duration字串。如未指定,系統會使用預設逾時時間5s。
建立並套用 ConfigMap
如要建立或更新 ConfigMap,請按照下列步驟操作:
建立名為
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將 ConfigMap 套用至叢集:
kubectl apply -f external-probe-configmap.yaml -n gpc-system --kubeconfig=MANAGEMENT_API_SERVER將
MANAGEMENT_API_SERVER替換為 Management API 伺服器的 kubeconfig 檔案路徑。
探測器會自動偵測這個 ConfigMap 的變更,並根據定義的目標啟動、停止或更新探測程序。