|
Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar. |
Docker-Installation mit TLS-Beendigung an der Layer-7-Schicht des NGINX-Load-Balancers
Für Entwicklungs- und Testumgebungen, die eine spezielle Anforderung haben, TLS/SSL an einem Load Balancer statt in Ihrem Rancher-Server-Container zu beenden, stellen Sie Rancher bereit und konfigurieren Sie einen Load Balancer, der mit ihm zusammenarbeitet.
Ein Layer-7-Load-Balancer kann vorteilhaft sein, wenn Sie Ihre TLS-Beendigung in Ihrer Infrastruktur zentralisieren möchten. Layer-7-Load Balancer bietet auch die Möglichkeit, dass Ihr Load Balancer Entscheidungen basierend auf HTTP-Attributen wie Cookies usw. trifft, mit denen sich ein Layer-4-Load Balancer nicht befassen kann.
Dieses Installationsverfahren führt Sie durch die Bereitstellung von Rancher mit einem einzelnen Container und bietet dann eine Beispielkonfiguration für einen Layer-7 NGINX-Load-Balancer.
Anforderungen an das Betriebssystem, Docker, Hardware und Netzwerk
Stellen Sie sicher, dass Ihr Knoten die allgemeinen Installationsanforderungen erfüllt.
1. Linux-Host bereitstellen
Stellen Sie einen einzelnen Linux-Host gemäß unseren Anforderungen bereit, um Ihren Rancher-Server zu starten.
2. Wählen Sie eine SSL-Option und installieren Sie Rancher
Aus Sicherheitsgründen ist SSL (Secure Sockets Layer) erforderlich, wenn Sie Rancher verwenden. SSL sichert alle Netzwerkkommunikationen von Rancher, wie z.B. beim Anmelden oder Interagieren mit einem Cluster.
|
Möchten Sie..
Siehe Erweiterte Optionen unten, bevor Sie fortfahren. |
Treffen Sie eine Auswahl aus den folgenden Optionen:
Option A - Bringen Sie Ihr eigenes Zertifikat mit: Selbstsigniert
Wenn Sie sich entscheiden, ein selbstsigniertes Zertifikat zur Verschlüsselung der Kommunikation zu verwenden, müssen Sie das Zertifikat auf Ihrem Load Balancer (was Sie später tun werden) und in Ihrem Rancher-Container installieren. Führen Sie den Docker-Befehl aus, um Rancher bereitzustellen, und verweisen Sie auf Ihr Zertifikat.
|
Voraussetzungen:
Erstellen Sie ein selbstsigniertes Zertifikat.
|
Um Rancher mit einem selbstsignierten Zertifikat zu installieren:
-
Während Sie den Docker-Befehl zur Bereitstellung von Rancher ausführen, verweisen Sie Docker auf Ihre CA-Zertifikatdatei.
docker run -d --restart=unless-stopped \ -p 80:80 -p 443:443 \ -v /etc/your_certificate_directory/cacerts.pem:/etc/rancher/ssl/cacerts.pem \ rancher/rancher:latest
Option B – Bringen Sie Ihr eigenes Zertifikat mit: Von einer anerkannten CA signiert
Details
Wenn Ihr Cluster öffentlich zugänglich ist, ist es am besten, ein von einer anerkannten CA signiertes Zertifikat zu verwenden.
|
Voraussetzungen:
|
Um Rancher mit einem von einer anerkannten CA signierten Zertifikat zu installieren:
Wenn Sie ein von einer anerkannten CA signiertes Zertifikat verwenden, ist es nicht notwendig, Ihr Zertifikat im Rancher-Container zu installieren. Wir müssen sicherstellen, dass kein standardmäßiges CA-Zertifikat generiert und gespeichert wird; dies können Sie tun, indem Sie den --no-cacerts Parameter an den Container übergeben.
-
Geben Sie den folgenden Befehl ein.
docker run -d --restart=unless-stopped \ -p 80:80 -p 443:443 \ rancher/rancher:latest --no-cacerts
3. Konfigurieren Sie den Lastausgleich
Wenn Sie einen Lastausgleich vor Ihrem Rancher-Container verwenden, ist es nicht erforderlich, dass der Container die Portkommunikation von Port 80 oder Port 443 umleitet. Durch das Übergeben des X-Forwarded-Proto: https Headers wird diese Umleitung deaktiviert.
Der Lastausgleich oder Proxy muss so konfiguriert werden, dass er Folgendes unterstützt:
-
WebSocket Verbindungen
-
SPDY / HTTP/2 Protokolle
-
Übergeben / Setzen der folgenden Header:
Kopftext Wert Beschreibung HostHostname, der verwendet wird, um Rancher zu erreichen.
Um den vom Client angeforderten Server zu identifizieren.
X-Forwarded-ProtohttpsUm das Protokoll zu identifizieren, das ein Client verwendet hat, um sich mit dem Lastausgleich oder Proxy zu verbinden. Hinweis: Wenn dieser Header vorhanden ist,
rancher/rancherleitet HTTP nicht auf HTTPS um.X-Forwarded-PortPort, der verwendet wird, um Rancher zu erreichen.
Um das Protokoll zu identifizieren, das der Client verwendet hat, um sich mit dem Lastausgleich oder Proxy zu verbinden.
X-Forwarded-ForIP der Clientverbindung.
Um die ursprüngliche IP-Adresse eines Clients zu identifizieren.
Beispiel NGINX-Konfiguration
Diese NGINX-Konfiguration wurde auf NGINX 1.14 getestet.
|
Diese NGINX-Konfiguration ist nur ein Beispiel und passt möglicherweise nicht zu Ihrer Umgebung. Für die vollständige Dokumentation siehe NGINX Load Balancing - HTTP Load Balancing. |
-
Ersetzen Sie
rancher-serverdurch die IP-Adresse oder den Hostnamen des Knotens, der den Rancher-Container ausführt. -
Ersetzen Sie beide Vorkommen von
FQDNdurch den DNS-Namen für Rancher. -
Ersetzen Sie
/certs/fullchain.pemund/certs/privkey.pemdurch den Speicherort des Serverzertifikats und des Serverzertifikatsschlüssels.
worker_processes 4;
worker_rlimit_nofile 40000;
events {
worker_connections 8192;
}
http {
upstream rancher {
server rancher-server:80;
}
map $http_upgrade $connection_upgrade {
default Upgrade;
'' close;
}
server {
listen 443 ssl http2;
server_name FQDN;
ssl_certificate /certs/fullchain.pem;
ssl_certificate_key /certs/privkey.pem;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://rancher;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
# This allows the ability for the execute shell window to remain open for up to 15 minutes. Without this parameter, the default is 1 minute and will automatically close.
proxy_read_timeout 900s;
proxy_buffering off;
}
}
server {
listen 80;
server_name FQDN;
return 301 https://$server_name$request_uri;
}
}
Was kommt als Nächstes?
-
Empfohlen: Überprüfen Sie die Einzelknoten-xref:[Sicherung] und xref:[Wiederherstellung]. Obwohl Sie derzeit keine Daten haben, die Sie sichern müssen, empfehlen wir, nach regelmäßigem Rancher-Gebrauch Sicherungen zu erstellen.
-
Erstellen Sie einen Kubernetes-Cluster: Bereitstellung von Kubernetes-Clustern.
FAQ und Fehlerbehebung
Für Hilfe bei der Fehlersuche von Zertifikaten siehe diesen Abschnitt.
Erweiterte Optionen
API-Auditierung
Wenn Sie alle Transaktionen mit der Rancher API aufzeichnen möchten, aktivieren Sie die API Auditing-Funktion, indem Sie die untenstehenden Flags in Ihren Installationsbefehl einfügen.
-e AUDIT_LEVEL=1 \ -e AUDIT_LOG_ENABLED=true \ -e AUDIT_LOG_PATH=/var/log/auditlog/rancher-api-audit.log \ -e AUDIT_LOG_MAXAGE=20 \ -e AUDIT_LOG_MAXBACKUP=20 \ -e AUDIT_LOG_MAXSIZE=100 \
Air Gap
Wenn Sie diese Seite besuchen, um eine Air Gap Installation abzuschließen, müssen Sie Ihre private Registry-URL dem Server-Tag voranstellen, wenn Sie den Installationsbefehl in der von Ihnen gewählten Option ausführen. Fügen Sie <REGISTRY.DOMAIN.COM:PORT> mit Ihrer privaten Registry-URL vor rancher/rancher:latest hinzu.
Beispiel:
<REGISTRY.DOMAIN.COM:PORT>/rancher/rancher:latest
Persistente Daten
Rancher verwendet etcd als Datenspeicher. Wenn Rancher mit Docker installiert ist, wird das eingebettete etcd verwendet. Die persistenten Daten befinden sich im folgenden Pfad im Container: /var/lib/rancher.
Sie können ein Host-Volume an diesem Ort binden, um Daten auf dem Host, auf dem es läuft, zu speichern:
docker run -d --restart=unless-stopped \ -p 80:80 -p 443:443 \ -v /opt/rancher:/var/lib/rancher \ --privileged \ rancher/rancher:latest
Dieser Vorgang erfordert privilegierten Zugriff.
Diese Layer-7-NGINX-Konfiguration wurde mit NGINX Version 1.13 (Mainline) und 1.14 (Stable) getestet.
|
Diese NGINX-Konfiguration ist nur ein Beispiel und passt möglicherweise nicht zu Ihrer Umgebung. Für die vollständige Dokumentation siehe NGINX Load Balancing – TCP und UDP Load Balancer. |
upstream rancher {
server rancher-server:80;
}
map $http_upgrade $connection_upgrade {
default Upgrade;
'' close;
}
server {
listen 443 ssl http2;
server_name rancher.yourdomain.com;
ssl_certificate /etc/your_certificate_directory/fullchain.pem;
ssl_certificate_key /etc/your_certificate_directory/privkey.pem;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://rancher;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
# This allows the ability for the execute shell window to remain open for up to 15 minutes. Without this parameter, the default is 1 minute and will automatically close.
proxy_read_timeout 900s;
proxy_buffering off;
}
}
server {
listen 80;
server_name rancher.yourdomain.com;
return 301 https://$server_name$request_uri;
}