Skip to main content
Skip table of contents

Ausführen von edoc platform hinter einem Proxyserver

Sie können eine edoc platform-System hinter einem Proxyserver ausführen. Erfahren Sie in diesem Artikel, welche Maßnahmen Sie durchführen müssen, um einen reibungslosen Betrieb für edoc platform sicherzustellen.

In diesem Artikel erfahren Sie, welche Proxydaten Sie in den Umgebungsvariablen angeben, welche Details Sie auf Betriebssystemebene konfigurieren und wie Sie die Konfiguration (Configmap) in den Kubernetes-Containern bereitstellen.

Der Service snap.microk8s.daemon-kubelet.service muss mindestens einmal neu gestartet werden.

Angeben des Proxys in den Umgebungsvariablen

Der Service kubelet verwendet die environment-Konfigurationsdatei, die Sie unter /etc/environment finden. Sie müssen folgende Daten in die Datei eintragen:

  • Adresse des Proxyservers (Hostname und Port des Proxyservers)

  • Anmeldedaten für den Proxyserver (Benutzername und Passwort, optional)

  • IP-Bereich für Kubernetes

Um den IP-Bereich vom Kubernetes bzw. die Adresse von einem Service im Kubernetes-Netz zu ermitteln, geben Sie folgenden Befehl ein:

BASH
ip addr show cbr0|grep "inet "

Beispielantwort:

BASH
inet 10.1.1.1/24 scope global cbr0

Geben Sie in der Konfigurationsdatei /etc/environment den Proxyserver und die Anmeldedaten für den Proxserver und den IP-Bereich ein.

TEXT
HTTP_PROXY=http://<proxy_username:proxy_password@proxy_host:proxy_port>
HTTPS_PROXY=http://<proxy_username:proxy_password@proxy_host:proxy_port>
NO_PROXY=<IP range for Kubernetes, e.g. 10.1.1.0/24>

http_proxy=http://<proxy_username:proxy_password@proxy_host:proxy_port>
https_proxy=http://<proxy_username:proxy_password@proxy_host:proxy_port>
no_proxy=<IP range for Kubernetes, e.g. 10.1.1.0/24>

Verwenden des Proxys auf Betriebssystemebene und in “kubelet”

Nachdem Sie die environment-Konfigurationsdatei geändert haben, müssen die Änderungen angewendet werden, damit der Proxyserver von den Apps auf Ubuntu und in kubelet verwendet wird.

Laden Sie die systemd-Konfiguration mit folgenden Befehl neu:

BASH
sudo systemctl daemon-reload

Starten Sie den Dienst kubelet mit folgendem Befehl erneut, um die geänderte Konfiguration anzuwenden:

CODE
sudo systemctl restart snap.microk8s.daemon-kubelet.service

Weitere Informationen zum Installieren eines Proxys finden Sie unter: https://microk8s.io/docs/install-proxy (in englischer Sprache).

Automatisches Erstellen einer Proxy-ConfigMap via Artisan-Befehl

Damit der Proxyserver auch in den Kubernetes-Containern genutzt wird, müssen Sie die geänderten Proxyserverdaten in allen Kubernetes-Namespaces bereitstellen. Standardmäßig sorgt die edoc agent-Aufgabe SyncSystemState dafür, dass die Konfiguration regelmäßig aktualisiert wird.

Sie können die Konfiguration auch manuell mit dem Artisan-Befehl über die Befehlszeile (command line) ausführen.

Verwenden Sie folgenden Befehl im Verzeichnis /opt/agent, um die Proxyeinstellungen nicht nur für den kubelet-Service, sondern auch zentral als Kubernetes-ConfigMap in den Namespaces bereitzustellen:

CODE
php artisan agent:proxyGenerate
# To automatically restart the affected deployments:
php artisan agent:proxyGenerate --auto

Basiswissen zum Artisan-Befehl

Folgende Schritte werden mit dem Artisan-Befehl ausgeführt:

Leere Proxyeinstellungen
Wenn während des Prozesses keine Proxyvariablen gefunden werden, löscht der Artisan-Befehl vorhandene proxy-config-ConfigMaps und fragt optional nach einem Neustart der betroffenen Deployments.

  1. Umgebungsdatei wird geprüft: Liest die Konfigurationsdatei /etc/environment ein. Wenn die Konfigurationsdatei nicht gefunden wird, bricht der Befehl ab.

  2. Zielnamespaces werden ermittelt: Standardmäßig werden nur die Namespaces master, staging und test berücksichtigt. Existieren diese Namespaces im Cluster, wird für jeden Namespace der Prozess durchgeführt.

  3. Proxyvariablen werden extrahiert: Es werden alle Keys HTTP_PROXY, HTTPS_PROXY, NO_PROXY (auch in Kleinbuchstaben) gelesen. Zusätzlich werden zur NO_PROXY-Variable automatisch folgende Suffixe hinzugefügt:

    TEXT
    .default, .master, .staging, .test, .phpmyadmin, .kube-system, .traefik 
  4. Erzeugen oder Aktualisieren der Namespace-ConfigMap: Für jeden Namespace werden die Umgebungsvariablen in eine Kubernetes-ConfigMap geschrieben. Wenn bereits eine ConfigMap für den Namespace existiert, werden die enthaltenen Daten mit den neu extrahierten Proxyvariablen verglichen. Wenn es keine Änderungen gibt, wird das Neustarten der Deployments übersprungen. Allen Pods in den Namespaces, für die der Zugriff auf externe Dienste relevant ist, werden über die ConfigMap im Deployment die Proxyserver-Umgebungsvariablen zugewiesen.

  5. Deployments werden neu gestartet: Anschließend werden die betroffenen Deployments im Namespace neu gestartet.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.