Externe Prüfziele konfigurieren

In diesem Dokument wird beschrieben, wie Sie externe Ziele für Tests in Google Distributed Cloud (GDC) mit Air Gap konfigurieren. Das System ermittelt und überwacht diese Ziele durch Lesen einer bestimmten Kubernetes-ConfigMap.

Hinweis

Wenn Sie eine ConfigMap auf den Namespace gpc-system anwenden möchten, benötigen Sie Zugriff auf den Cluster und Berechtigungen zum Erstellen oder Ändern von ConfigMaps in diesem Namespace. Außerdem benötigen Sie den Pfad zur kubeconfig-Datei für den Management API-Servercluster. Tests für externe Ziele können nur in Root-Administrator- oder Organisationsadministratorclustern konfiguriert werden.

Details zur ConfigMap

Der Prober sucht nach einer ConfigMap mit den folgenden Merkmalen:

  • Name:pnet-external-probe-targets-config
  • Namespace:gpc-system
  • Datenschlüssel:Die ConfigMap muss im Feld data einen Schlüssel mit dem Namen targets.yaml enthalten. Der Wert, der diesem Schlüssel zugeordnet ist, muss ein YAML-String sein, der die Testziele definiert.

Struktur von targets.yaml

Der Inhalt von targets.yaml muss eine YAML-Liste von Objekten sein. Jedes Objekt stellt ein einzelnes externes Prüfziel dar und hat die folgende Struktur:

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

Hier eine Aufschlüsselung der Felder:

  • name (String) : Eine eindeutige ID für dieses bestimmte Testziel.
  • spec: Definiert die Testparameter:
    • target (String) : Der Hostname oder die IP-Adresse des externen Ziels, das getestet werden soll.
    • probeType (String) : Der Typ der Prüfung, die ausgeführt werden soll. Unterstützte Werte sind:
      • TCP: Führt einen TCP-Verbindungsversuch zum angegebenen target und port aus.
      • ICMP: Sendet eine ICMP-Echo-Anfrage (Ping) an das target.
    • port (int32) : Die Portnummer, die für TCP-Tests verwendet werden soll. Dieses Feld ist erforderlich, wenn probeType auf TCP festgelegt ist, und wird für ICMP-Tests ignoriert.
    • interval (String) : Die Häufigkeit, mit der die Prüfung ausgeführt werden soll. Dies muss ein gültiger Kubernetes-String metav1.Duration sein, z.B. "5s" oder "1m30s".
    • timeout (String, optional) : Die maximale Zeit, die gewartet werden soll, bis ein einzelner Prüfversuch abgeschlossen ist. Dies ist auch ein metav1.Duration-String. Wenn nichts angegeben ist, wird ein Standard-Timeout von 5s verwendet.

ConfigMap erstellen und anwenden

So erstellen oder aktualisieren Sie die ConfigMap:

  1. Erstellen Sie eine YAML-Datei mit dem Namen external-probe-configmap.yaml. Im folgenden Beispiel werden drei Testziele definiert:

    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. Wenden Sie die ConfigMap auf Ihren Cluster an:

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

    Ersetzen Sie MANAGEMENT_API_SERVER durch den Pfad zur kubeconfig-Datei für den Management API-Server.

Der Prober erkennt automatisch Änderungen an dieser ConfigMap und startet, beendet oder aktualisiert Testprozesse basierend auf den definierten Zielen.