Externe Prüfziele konfigurieren

In diesem Dokument wird beschrieben, wie Sie externe Ziele für das Testen in Google Distributed Cloud (GDC) mit Air Gap konfigurieren. Das System ermittelt und überwacht diese Ziele, indem es eine bestimmte Kubernetes-ConfigMap liest.

Hinweise

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. Sie benötigen auch den Pfad zur kubeconfig-Datei für den Management API-Servercluster. Externe Ziel-Probes können nur in Root-Administrator- oder Organisationsadministratorclustern konfiguriert werden.

Details zu ConfigMaps

Der Prober sucht nach einer ConfigMap mit den folgenden Merkmalen:

  • Name: pnet-external-probe-targets-config
  • Namespace:gpc-system
  • Data Key: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 Probeziele definiert.

targets.yaml-Struktur

Der targets.yaml-Inhalt muss eine YAML-Liste von Objekten sein. Jedes Objekt stellt ein einzelnes externes Testziel 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 Kennung für dieses bestimmte Testziel.
  • spec:Definiert die Parameter für die Analyse:
    • target (String): Der Hostname oder die IP-Adresse des externen Ziels, das geprüft werden soll.
    • probeType (String): Der Typ des durchzuführenden Tests. Unterstützte Werte:
      • TCP: Führt einen TCP-Verbindungsversuch zum angegebenen target und port aus.
      • ICMP: Sendet eine ICMP-Echo-Anfrage (Ping) an die target.
    • port (int32): Die Portnummer, die für TCP-Tests verwendet werden soll. Dieses Feld ist erforderlich, wenn probeType gleich TCP ist. Bei ICMP-Tests wird es ignoriert.
    • interval (String): Die Häufigkeit, mit der die Prüfung ausgeführt werden soll. Dies muss ein gültiger Kubernetes-metav1.Duration-String sein (z.B. "5s", "1m30s").
    • timeout (string, optional): Die maximale Wartezeit für den Abschluss eines einzelnen Prüfversuchs. Das ist auch ein metav1.Duration-String. Wenn nichts angegeben ist, wird ein Standard-Zeitlimit 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 Probe-Ziele 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, stoppt oder aktualisiert die Prüfprozesse basierend auf den definierten Zielen.