Configurare le destinazioni dei probe esterni

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

Prima di iniziare

Per applicare un ConfigMap allo spazio dei nomi gpc-system, devi disporre dell'accesso al cluster e delle autorizzazioni per creare o modificare ConfigMap in questo spazio dei nomi. Devi anche specificare il percorso del file kubeconfig per il cluster del server API Management. I probe di destinazione esterni possono essere configurati solo nei cluster root-admin o org-admin.

Informazioni sui dettagli di ConfigMap

Il probe cerca un oggetto ConfigMap con le seguenti caratteristiche:

  • Nome: pnet-external-probe-targets-config
  • Spazio dei nomi: gpc-system
  • Data Key:ConfigMap deve contenere una chiave denominata targets.yaml nel campo data. Il valore associato a questa chiave deve essere una stringa YAML che definisce le destinazioni del probe.

Informazioni sulla struttura di targets.yaml

Il contenuto di targets.yaml deve essere un elenco YAML di oggetti. 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 della destinazione esterna da analizzare.
    • probeType (stringa): il tipo di probe da eseguire. I valori supportati sono:
      • TCP: esegue un tentativo di connessione TCP al target e al port specificati.
      • ICMP: invia una richiesta di echo ICMP (ping) a 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 di esecuzione del probe. Deve essere una stringa metav1.Duration Kubernetes valida (ad es. "5s", "1m30s").
    • timeout (stringa, facoltativo): il tempo massimo di attesa per il completamento di un singolo tentativo di probe. Anche questa è una stringa metav1.Duration. Se non specificato, viene utilizzato un timeout predefinito di 5s.

Crea e applica ConfigMap

Per creare o aggiornare 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 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 Management.

Il prober rileva automaticamente le modifiche a questo ConfigMap e avvia, arresta o aggiorna i processi di probe in base alle destinazioni definite.