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
dataeinen Schlüssel mit dem Namentargets.yamlenthalten. 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 angegebenentargetundportaus.ICMP: Sendet eine ICMP-Echo-Anfrage (Ping) an dastarget.
port(int32) : Die Portnummer, die für TCP-Tests verwendet werden soll. Dieses Feld ist erforderlich, wennprobeTypeaufTCPfestgelegt ist, und wird fürICMP-Tests ignoriert.interval(String) : Die Häufigkeit, mit der die Prüfung ausgeführt werden soll. Dies muss ein gültiger Kubernetes-Stringmetav1.Durationsein, 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 einmetav1.Duration-String. Wenn nichts angegeben ist, wird ein Standard-Timeout von5sverwendet.
ConfigMap erstellen und anwenden
So erstellen oder aktualisieren Sie die ConfigMap:
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 5sWenden Sie die ConfigMap auf Ihren Cluster an:
kubectl apply -f external-probe-configmap.yaml -n gpc-system --kubeconfig=MANAGEMENT_API_SERVERErsetzen Sie
MANAGEMENT_API_SERVERdurch 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.