配置外部探测目标

本文档介绍了如何在 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:尝试与指定的 targetport 建立 TCP 连接。
      • ICMP:向 target 发送 ICMP 回显请求 (ping)。
    • 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 替换为管理 API 服务器的 kubeconfig 文件的路径。

探测器会自动检测此 ConfigMap 的更改,并根据定义的目标启动、停止或更新探测进程。