Configurer des cibles de vérification externes

Ce document explique comment configurer des cibles externes pour le probing dans Google Distributed Cloud (GDC) sous air gap. 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 avez également besoin du chemin d'accès au fichier kubeconfig pour le cluster du serveur de l'API Management. Les sondes cibles externes ne peuvent être configurées que dans les clusters root-admin ou org-admin.

Comprendre les informations sur les objets ConfigMap

Le vérificateur 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 de 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 le détail des champs :

  • name (chaîne) : identifiant unique de cette cible de sonde spécifique.
  • spec : définit les paramètres d'analyse :
    • target (chaîne) : nom d'hôte ou adresse IP de la cible externe à tester.
    • probeType (chaîne) : type de test à effectuer. Les valeurs acceptées 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) à target.
    • port (int32) : numéro de port à utiliser pour les sondes TCP. Ce champ est obligatoire lorsque probeType est défini sur TCP et est ignoré pour les vérifications ICMP.
    • interval (chaîne) : fréquence à laquelle la vérification doit être exécutée. Il doit s'agir d'une chaîne metav1.Duration Kubernetes valide (par exemple, "5s", "1m30s").
    • timeout (chaîne, facultatif) : durée maximale 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 avant expiration 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 du serveur de l'API Management.

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