Configurar destinos de sondeo externos

En este documento se explica cómo configurar destinos externos para las comprobaciones en Google Distributed Cloud (GDC) con air gap. El sistema descubre y monitoriza estos destinos leyendo un ConfigMap de Kubernetes específico.

Antes de empezar

Para aplicar un ConfigMap al espacio de nombres gpc-system, debe tener acceso al clúster y permisos para crear o modificar ConfigMaps en ese espacio de nombres. También necesitas la ruta al archivo kubeconfig del clúster del servidor de la API Management. Las sondas de destino externas solo se pueden configurar en clústeres de administrador raíz o de administrador de organización.

Información sobre los detalles de ConfigMap

El comprobador busca un ConfigMap con las siguientes características:

  • Nombre: pnet-external-probe-targets-config
  • Espacio de nombres: gpc-system
  • Clave de datos: el ConfigMap debe contener una clave llamada targets.yaml en su campo data. El valor asociado a esta clave debe ser una cadena YAML que defina los destinos de la comprobación.

Estructura de targets.yaml

El contenido de targets.yaml debe ser una lista de objetos YAML. Cada objeto representa un único destino de sondeo externo y sigue esta estructura:

- 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.

A continuación, se muestra un desglose de los campos:

  • name (cadena): identificador único de este destino de sondeo específico.
  • spec: define los parámetros de sondeo:
    • target (cadena): el nombre de host o la dirección IP del destino externo que se va a sondear.
    • probeType (cadena): el tipo de comprobación que se va a realizar. Los valores admitidos son:
      • TCP: intenta establecer una conexión TCP con el target y el port especificados.
      • ICMP: envía una solicitud de eco ICMP (ping) a target.
    • port (int32): número de puerto que se va a usar para las sondas TCP. Este campo es obligatorio cuando probeType es TCP y se ignora en las sondas ICMP.
    • interval (cadena): la frecuencia con la que debe ejecutarse la sonda. Debe ser una cadena metav1.Duration de Kubernetes válida (por ejemplo, "5s" o "1m30s").
    • timeout (cadena, opcional): tiempo máximo que se espera a que se complete un único intento de comprobación. También es una metav1.Durationcadena. Si no se especifica, se usa un tiempo de espera predeterminado de 5s.

Crear y aplicar el ConfigMap

Para crear o actualizar el ConfigMap, sigue estos pasos:

  1. Crea un archivo YAML llamado external-probe-configmap.yaml. En el siguiente ejemplo se definen tres destinos de comprobación:

    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. Aplica el ConfigMap a tu clúster:

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

    Sustituye MANAGEMENT_API_SERVER por la ruta al archivo kubeconfig del servidor de la API Management.

El comprobador detecta automáticamente los cambios en este ConfigMap e inicia, detiene o actualiza los procesos de comprobación en función de los destinos definidos.