Configurare le destinazioni dei probe esterni

Questo documento spiega come configurare i target esterni per il probing in Google Distributed Cloud (GDC) air-gapped. Il sistema rileva e monitora questi target leggendo un oggetto ConfigMap Kubernetes specifico.

Prima di iniziare

Per applicare un oggetto ConfigMap allo spazio dei nomi gpc-system, devi avere accesso al cluster e le autorizzazioni per creare o modificare gli oggetti ConfigMap in questo spazio dei nomi. Devi anche avere il percorso del file kubeconfig per il cluster del server API di gestione. I probe dei target esterni possono essere configurati solo nei cluster root-admin o org-admin.

Informazioni sui dettagli di ConfigMap

Il prober cerca un oggetto ConfigMap con le seguenti caratteristiche:

  • Nome: pnet-external-probe-targets-config
  • Spazio dei nomi: gpc-system
  • Chiave dati: l'oggetto ConfigMap deve contenere una chiave denominata targets.yaml nel campo data. Il valore associato a questa chiave deve essere una stringa YAML che definisce i target del probe.

Informazioni sulla struttura di targets.yaml

Il contenuto di targets.yaml deve essere un elenco di oggetti YAML. Ogni oggetto rappresenta un singolo target di probe esterno e segue questa struttura:

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

Ecco una suddivisione dei campi:

  • name (stringa): un identificatore univoco per questo target di probe specifico.
  • spec: definisce i parametri di probing:
    • target (stringa): il nome host o l'indirizzo IP del target esterno da eseguire il probe.
    • probeType (stringa): il tipo di probe da eseguire. I valori supportati sono:
      • TCP: esegue un tentativo di connessione TCP al target e alla port specificati.
      • ICMP: invia una richiesta di echo ICMP (ping) al target.
    • port (int32): il numero di porta da utilizzare per i probe TCP. Questo campo è obbligatorio quando probeType è TCP e viene ignorato per i probe ICMP.
    • interval (stringa): la frequenza con cui deve essere eseguito il probe. Deve essere una stringa metav1.Duration Kubernetes valida (ad es. "5s", "1m30s").
    • timeout (stringa, facoltativa): il tempo massimo di attesa per il completamento di un singolo tentativo di probe. Si tratta anche di una stringa metav1.Duration. Se non specificato, viene utilizzato un timeout predefinito di 5s.

Creare e applicare l'oggetto ConfigMap

Per creare o aggiornare l'oggetto ConfigMap:

  1. Crea un file YAML denominato external-probe-configmap.yaml. L'esempio seguente definisce tre target di probe:

    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. Applica l'oggetto ConfigMap al cluster:

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

    Sostituisci MANAGEMENT_API_SERVER con il percorso del file kubeconfig per il server API di gestione.

Il prober rileva automaticamente le modifiche apportate a questo oggetto ConfigMap e avvia, arresta o aggiorna i processi di probe in base ai target definiti.