本文档介绍了如何在 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(字符串):相应探测目标的唯一标识符。spec:定义探测参数:target(字符串):要探测的外部目标的主机名或 IP 地址。probeType(字符串):要执行的探测类型。支持的值包括:TCP:尝试与指定的target和port建立 TCP 连接。ICMP:向target发送 ICMP 回显请求 (ping)。
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替换为管理 API 服务器的 kubeconfig 文件的路径。
探测器会自动检测此 ConfigMap 的更改,并根据定义的目标启动、停止或更新探测进程。