Configurer des cibles de vérification externes

Ce document explique comment configurer des cibles externes pour le sondage dans Google Distributed Cloud (GDC) air-gapped. Le système découvre et surveille ces cibles en lisant un ConfigMap Kubernetes spécifique.

Avant de commencer

Pour appliquer un ConfigMap à l'espace de noms gpc-system, vous devez avoir accès au cluster et disposer des autorisations nécessaires pour créer ou modifier des ConfigMaps dans cet espace de noms. Vous devez également disposer du chemin d'accès au fichier kubeconfig pour le cluster de serveur de l'API Management. Les sondes de cibles externes ne peuvent être configurées que dans les clusters d'administrateur racine ou d'administrateur d'organisation.

Comprendre les détails du ConfigMap

Le sondeur recherche un ConfigMap présentant les caractéristiques suivantes :

  • Nom : pnet-external-probe-targets-config
  • Espace de noms : gpc-system
  • Clé de données : le ConfigMap doit contenir une clé nommée targets.yaml dans son champ data. La valeur associée à cette clé doit être une chaîne YAML définissant les cibles de la sonde.

Comprendre la structure targets.yaml

Le contenu targets.yaml doit être une liste YAML d'objets. Chaque objet représente une seule cible de sonde externe et suit cette structure :

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

Voici une description des champs :

  • name (chaîne) : identifiant unique de cette cible de sonde spécifique.
  • spec: définit les paramètres de sondage :
    • target (chaîne) : nom d'hôte ou adresse IP de la cible externe à sonder.
    • probeType (chaîne) : type de vérification à effectuer. Les valeurs compatibles sont les suivantes :
      • TCP : tente d'établir une connexion TCP avec le target et le port spécifiés.
      • ICMP : envoie une requête d'écho ICMP (ping) à la target.
    • port (int32) : numéro de port à utiliser pour les sondes TCP. Ce champ est obligatoire lorsque probeType est TCP et est ignoré pour les sondes ICMP.
    • interval (chaîne) : fréquence à laquelle la sonde doit s'exécuter. Il doit s'agir d'une chaîne metav1.Duration Kubernetes valide (par exemple, "5s", "1m30s").
    • timeout (chaîne, facultatif) : délai maximal d'attente pour qu'une seule tentative de vérification se termine. Il s'agit également d'une chaîne metav1.Duration. Si aucune valeur n'est spécifiée, un délai d'attente par défaut de 5s est utilisé.

Créer et appliquer le ConfigMap

Pour créer ou mettre à jour le ConfigMap, procédez comme suit :

  1. Créez un fichier YAML nommé external-probe-configmap.yaml. L'exemple suivant définit trois cibles de sonde :

    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. Appliquez le ConfigMap à votre cluster :

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

    Remplacez MANAGEMENT_API_SERVER par le chemin d'accès au fichier kubeconfig pour le serveur de l'API Management.

Le sondeur détecte automatiquement les modifications apportées à ce ConfigMap et démarre, arrête ou met à jour les processus de sonde en fonction des cibles définies.