Konfiguration der Schematics Agenten für die Verwendung eines Proxyservers

Viele Umgebungen lassen keine direkte Konnektivität zum öffentlichen Internet zu, erfordern jedoch, dass Verbindungen von einem sicheren Proxy-Gateway weitergeleitet werden. Schematics Agentenkonfigurationsrichtlinien ermöglichen die Verwendung eines Proxy-Servers, wenn der direkte Zugriff auf das Internet nicht zulässig ist. Sie können einen HTTP oder HTTPS Proxy verwenden.

Die Proxy-Konfiguration muss auf jedem Host im Cluster identisch sein. Daher müssen Sie beim Einrichten oder Ändern des Proxys die YAML-Spezifikationsdatei für das Deployment, die ConfigMap, und die NetworkPolicy aktualisieren. Starten Sie anschließend die Implementierung erneut, um die Proxy-Server-Konfiguration anzuwenden.

Vorbereitende Schritte

Stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind, bevor Sie den Proxy-Serverzugriff konfigurieren. Das Beispiel hier verwendet einen Squid-Proxy an Port 3128.

  • Ein Proxy-Server, der Google über HTTP oder HTTPS erreichen kann und vom Cluster aus zugänglich ist.
  • IP-Adresse und Port des Proxy-Servers, z. B. http://53.25.191.193:3128
  • Das Befehlszeilentool 'curl' ist auf den Cluster-Pods verfügbar.

Proxy-Server konfigurieren

  1. Über die Kubernetes-Clusterkonsole. Klicken Sie auf Kubernetes dashboard

  2. Wechseln Sie im Dropdown-Feld für die Namensbereichsauswahl zu schematics-runtime.

  3. Klicken Sie im Abschnitt Config and Storage auf Konfigurationszuordnungen, damit die Zuordnungen für den Namensbereich schematics-runtime angezeigt werden.

    • Klicken Sie auf die Konfigurationszuordnungsressource schematics-runtime-job-config und wählen Sie das Stiftsymbol aus, um die YAML-Datei zu bearbeiten und die HTTPS/HTTP-Proxy-Anweisungen hinzuzufügen.

    • Fügen Sie HTTPS/HTTP-Proxyeinträge unter der Eigenschaft data im unteren Abschnitt der Datei hinzu:

      data:
        HTTPS_PROXY: http://<ipaddress>:<port>
        HTTP_PROXY: http://<ipaddress>:<port>
      
    • Klicken Sie auf Aktualisieren, um die Konfigurationszuordnung zu speichern und zu bestätigen, dass die neuen Proxy-Einträge in der Dateiliste angezeigt werden.

    • Wiederholen Sie diese Schritte für die Konfigurationszuordnungsressource schematics-runtime-ansible-job-config.

  4. Klicken Sie im Abschnitt Cluster auf Netzrichtlinien, um die Richtlinien für den Namensbereich 'schematics-runtime' anzuzeigen.

    • Bearbeiten Sie die whitelist-runtime-egress-gen-ports-Datei NetworkPolicy, um den von Ihrem HTTPS/HTTP-Proxy verwendeten Port hinzuzufügen.
    • Fügen Sie den HTTPS/HTTP-Proxy-Port zur Eigenschaft "ports" hinzu.
      - ports:
        - protocol: TCP
          port: 3128
      
  5. Starten Sie die schematics-runtime-Bereitstellung erneut und überprüfen Sie, ob alle Pods aktiv sind.

    • Klicken Sie im Abschnitt Workloads auf Implementierungen, um die aktuellen Implementierungen für den Namensbereich 'schematics-runtime' anzuzeigen.
    • Wählen Sie die Ressource runtime-job aus und starten Sie den Pod erneut.
    • Wählen Sie die Ressource runtime-ansible-job aus und starten Sie den Pod erneut.

Zugriff auf Proxy-Server überprüfen

Überprüfen Sie, ob die Cluster-Pods über den Proxy-Server auf das Internet zugreifen können.

  • Melden Sie sich am Pod schematics-runtime an und führen Sie den Befehl curl aus, um zu überprüfen, ob die Proxy-Umgebungsvariablen im Container ordnungsgemäß festgelegt werden.

  • Wählen Sie unter Workloads > Pods die ersten job-runtime und Exec darin aus.

    curl --head https://www.google.com
    

Wenn der Proxy für HTTPS arbeitet, gibt der Befehl curl eine 200 OK HTTP response zurück.

Wenn der curl-Befehl keine Verbindung herstellen kann, stellen Sie sicher, dass der Proxy über den Cluster zugänglich ist und den Zugriff auf die Zielwebsite weiterleiten kann. Verwenden Sie den folgenden curl-Befehl mit der Option "proxy", um zu prüfen, ob auf den Proxy zugegriffen werden kann.

```curl {: codeblock}
curl --proxy http://<ipaddress>:<port> --head https://www.google.com
```

Wenn über den Proxy-Parameter nicht auf die Website zugegriffen werden kann, überprüfen Sie, ob die Netzegress-Regel für den Cluster ordnungsgemäß festgelegt ist und ob Netzzugriff auf den Proxy besteht.

Wenn auf die Website über den Proxy-Parameter zugegriffen werden kann, überprüfen Sie, ob die Konfigurationszuordnung ordnungsgemäß aktualisiert wurde und die Umgebungsvariablen des HTTPS/HTTP-Proxys mit dem Befehl env festgelegt wurden.

Die Umgebungsvariablen HTTP_PROXY und HTTPS_PROXY sollten in der Ausgabe aufgelistet werden. Falls nicht aufgelistet, überprüfen Sie die Konfigurationszuordnungsdefinitionen erneut.