Überblick
RancherOS ist ein unglaublich leichtes Betriebssystem (nur ca. 60 MB), auf dem ein Docker-Dämon "System" PID 0zum Ausführen von Systemdiensten (Netzwerk, Konsolenzugriff usw.) sowie ein Docker-Dämon "Benutzer" zum Ausführen von Nicht-Systemen ausgeführt werden. Systemcontainer (MySQL, Rancher und mehr).
Rancher ist eine von Containern ausgeführte Orchestrierungsplattform für die Verwaltung von Containern sowie für umfassendere Aspekte der Infrastruktur wie Hosts, Umgebungen und mehr. Ein Rancher-Server steuert die Orchestrierung, und auf jedem von Rancher verwalteten Host wird ein Rancher-Agent bereitgestellt.
In diesem Artikel werden die folgenden Schritte ausgeführt, um einen Rancher-Server bereitzustellen:
Cloud-init script - Veröffentlichen Sie eine Cloud-Init-Datei, um den Rancher-Server zu installieren und auszuführen.
PXE script - Schreiben Sie ein PXE-Skript, um die Cloud-Init-Datei abzurufen und den Host zum ersten Mal zu starten.
Firewall - Erstellen Sie eine Firewall-Gruppe, da die Sicherheit an erster Stelle steht.
Start it up - Stellen Sie den Host bereit und installieren Sie Rancher.
Bedarf
- VPS mit mindestens 1 GB RAM - Wir installieren den Rancher-Server auf diesem Host.
- Blockspeicher - Zum dauerhaften Speichern der Daten, Konfigurationen, Benutzer und mehr des Rancher-Servers.
- 1 Reservierte IP-Adresse - Damit Rancher-Agenten eine konsistente IP-Adresse erhalten, mit der sie der Rancher-Umgebung beitreten können.
Cloud-Init-Skript
Speichern Sie das folgende Skript an einem Ort, über den Ihr Host erreichbar ist, HTTP/HTTPSdamit er über das PXE-Skript darauf verweisen kann.
Ersetzen Sie die ssh-...Teile durch Ihren öffentlichen SSH-Schlüssel, damit Sie SSH in den Host einbinden können.
#cloud-config
ssh_authorized_keys:
- ssh-...
write_files:
- path: /cloud-config.yml
permissions: "0700"
owner: root
content: |
#cloud-config
ssh_authorized_keys:
- ssh-...
mounts:
- ["/dev/vdb1", "/mnt", "ext4", ""]
rancher:
services:
rancher-server:
image: rancher/server:stable
ports:
- 8080:8080
restart: always
volumes:
- /mnt/rancher-server-mysql:/var/lib/mysql
- path: /opt/rancher/bin/start.sh
permissions: "0700"
owner: root
content: |
#!/bin/bash
echo y | ros install -f -c /cloud-config.yml -d /dev/vda
Beachten Sie, dass dies tatsächlich ein cloud-config.ymlin ein anderes pflanzt cloud-config.yml. Der äußere wird geladen, wenn iPXE den Host zum ersten Mal startet, und installiert Rancher auf dem Laufwerk des Hosts /dev/vda. Die innere Konfiguration ist für nachfolgende Starts vorgesehen und startet den Rancher-Server.
Die MySQL-Daten werden im Blockspeicher gespeichert /dev/vdb, sodass die kritischen Rancher-Serverdaten und -Konfigurationen den Austausch des VPS-Hosts überleben können.
Sie können das Skript an eine beliebige Anzahl von freien Orten hochladen, die als URL öffentlich erreichbar sind, oder Sie können es auf einem anderen VPS hosten, sodass Ihre Hosts nur über ein privates Netzwerk darauf zugreifen können.
PXE-Skript
Kopieren Sie Folgendes als PXE-Startskript mit dem Namen " Rancher Server", während Sie es CLOUD_CONFIG_URLdurch die URL Ihrer cloud-config.ymlDatei ersetzen (so etwas wie https://example.com/cloud-config.yml).
#!ipxe
# Location of Kernel/Initrd images
set base-url https://releases.rancher.com/os/latest
kernel ${base-url}/vmlinuz rancher.state.dev=LABEL=RANCHER_STATE -- rancher.cloud_init.datasources=[url:CLOUD_CONFIG_URL]
initrd ${base-url}/initrd
boot
Dadurch wird die neueste RancherOS-ISO abgerufen und mithilfe Ihres Cloud-Init-Skripts in den Speicher gestartet. Ihr Cloud-Init-Skript installiert dann RancherOS auf der Festplatte, und beim zweiten Start wird der Rancher-Servercontainer ausgeführt.
Firewall
Wenn Rancher zum ersten Mal verfügbar ist, hat jeder, der den Endpunkt erreicht, sofort Administratorrechte.
Um zu verhindern, dass Außenstehende Ihren Rancher-Server entführen, erstellen Sie eine Firewall mit dem Namen "Rancher-Server" mit den folgenden Regeln:
TCP 22 auf Ihrer IP, so können Sie SSH in den Host.
TCP 8080 auf Ihrer IP, damit Sie die Rancher-Server-Webseite laden können.
TCP 8080 für alle Rancher-Agent-Hosts, damit sie sich beim Rancher-Server registrieren können.
Fang an
Stellen Sie Ihren Host mit mehr als 1 GB in derselben Region wie Ihren Blockspeicher Server Typebereit und setzen Sie ihn auf das benutzerdefinierte iPXE-Startskript "Rancher Server".
Stellen Sie nach dem Booten sicher, dass Sie die IP-Adresse in eine reservierte IP-Adresse konvertieren, damit Ihre Rancher-Agenten einen Endpunkt haben, bei dem sie sich konsistent registrieren können.
Es dauert ca. 4 Minuten, bis iPXE die RancherOS-ISO abgerufen hat, den ersten Start, auf dem RancherOS installiert wurde /dev/vda, und den zweiten Start, um das rancher/server:stableDocker-Image abzurufen und die Container zu starten.
Sobald es fertig ist, können Sie es unter erreichen http://YOUR_RESERVED_IP:8080.
Herzlichen Glückwunsch, Sie haben gerade den Rancher-Server unter RancherOS eingerichtet.
Sie können Ihre Instanz neu starten oder sogar zerstören / neu installieren. Der Blockspeicher behält Ihre Daten und Konfigurationen bei, während Ihre reservierte IP-Adresse neuen Rancher-Agenten ermöglicht, zu wissen, wo sich Ihr Server befindet.
Ein paar nächste Schritte:
Set up access control - Erstellen Sie mindestens einen lokalen Administrator mit einem sicheren Kennwort.
Add hosts- Add Hosts -> CustomKopieren Sie im Abschnitt die URL, die ein langes Token enthält, das für Ihren Rancher-Server spezifisch ist. Sie benötigen dies, um Rancher-Agenten bei Ihrem Server zu registrieren.
ExploreDie neueste Dokumentation zum Rancher-Server .