Configura destinos de sondeo externos

En este documento, se explica cómo configurar destinos externos para el sondeo en Google Distributed Cloud (GDC) aislado. El sistema descubre y supervisa estos destinos leyendo un ConfigMap de Kubernetes específico.

Antes de comenzar

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

Información sobre los detalles de ConfigMap

El verificador 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 dentro de su campo data. El valor asociado a esta clave debe ser una cadena YAML que defina los destinos de la sonda.

Información sobre la estructura de targets.yaml

El contenido de targets.yaml debe ser una lista de objetos en formato YAML. Cada objeto representa un solo 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 incluye un desglose de los campos:

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

Crea y aplica 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 sondeo:

    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
    

    Reemplaza MANAGEMENT_API_SERVER por la ruta de acceso al archivo kubeconfig del servidor de la API de administración.

El verificador detecta automáticamente los cambios en este ConfigMap y, luego, inicia, detiene o actualiza los procesos de sondeo según los destinos definidos.