Panoramica
RancherOS è un sistema operativo incredibilmente leggero (solo circa 60 MB) che esegue un demone Docker "di sistema" PID 0
per quanto riguarda i servizi di sistema (rete, accesso alla console e così via), nonché un demone Docker "utente" per l'esecuzione di non- container di sistema, (MySQL, Rancher e altro).
Rancher è una piattaforma di orchestrazione gestita da container per la gestione dei container, nonché aspetti più ampi dell'infrastruttura come host, ambienti e altro ancora. Un server Rancher controlla l'orchestrazione e un agente Rancher viene distribuito a ciascun host gestito da Rancher.
In questo articolo, seguiremo i seguenti passi per distribuire un server Rancher:
Cloud-init script
- Pubblica un file cloud-init per installare ed eseguire il server Rancher.
PXE script
- Scrivi uno script PXE per recuperare il file cloud-init e avviare l'host per la prima volta.
Firewall
- Crea un gruppo firewall, poiché la sicurezza è fondamentale.
Start it up
- Effettua il provisioning dell'host e installa Rancher.
Requisiti
- VPS con almeno 1 GB di RAM - Installeremo il server Rancher su questo host.
- Blocco dell'archiviazione: per archiviare in modo persistente i dati, le configurazioni, gli utenti e altro del server Rancher.
- 1 Indirizzo IP riservato: per fornire agli agenti Rancher un IP coerente da utilizzare per unirsi all'ambiente Rancher.
Script cloud-init
Salvare il seguente script in una posizione raggiungibile dall'host in HTTP/HTTPS
modo che possa fare riferimento al suo script PXE.
Sostituisci le ssh-...
parti con la tua chiave pubblica SSH in modo da poter SSH nell'host.
#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
Si noti che questo sta effettivamente piantando un cloud-config.yml
altro dentro cloud-config.yml
. Quello esterno viene caricato quando iPXE avvia l'host per la prima volta e installa Rancher sull'unità host /dev/vda
. La configurazione interna è per gli avvii successivi e avvierà effettivamente il server Rancher.
I dati MySQL sono archiviati nell'archivio blocchi /dev/vdb
, quindi i dati e le configurazioni del server Rancher critici possono sopravvivere alla sostituzione dell'host VPS.
Puoi caricare lo script in qualsiasi numero di posizioni libere raggiungibili come URL pubblicamente oppure puoi ospitarlo su un VPS diverso in modo che sia accessibile solo dai tuoi host tramite una rete privata.
Script PXE
Copia quanto segue come uno script di avvio PXE chiamato " Rancher Server
" durante la sostituzione CLOUD_CONFIG_URL
con l'URL del tuo cloud-config.yml
file (qualcosa del genere 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
Questo estrarrà l'ultimo ISO RancherOS e lo avvierà in memoria usando lo script cloud-init. Lo script cloud-init procederà quindi all'installazione di RancherOS su disco e il secondo avvio eseguirà il contenitore del server Rancher.
Firewall
Quando Rancher diventa disponibile per la prima volta, chiunque raggiunga l'endpoint avrà immediatamente i privilegi di amministratore.
Per impedire agli estranei di dirottare il tuo server Rancher, crea un firewall chiamato "Rancher Server" con le seguenti regole:
TCP 22
sul tuo IP, in modo da poter SSH nell'host.
TCP 8080
sul tuo IP, così puoi caricare la pagina web del server Rancher.
TCP 8080
per tutti gli host degli agenti Rancher, in modo che possano registrarsi con il server Rancher.
Avvialo
Effettua il provisioning del tuo host da 1+ GB nella stessa area della memoria di blocco e Server Type
impostalo sullo script di avvio personalizzato iPXE "Rancher Server".
Una volta avviato, assicurati di convertire il suo IP in un IP riservato in modo che i tuoi agenti Rancher abbiano un endpoint con cui possono registrarsi in modo coerente.
Ci vorranno ~ 4 minuti affinché iPXE esegua il pull dell'ISO RancherOS, il primo avvio in cui installare RancherOS /dev/vda
e per il secondo avvio l'estrazione rancher/server:stable
dell'immagine Docker e l'avvio dei suoi contenitori.
Una volta alzato, sarai in grado di raggiungerlo a http://YOUR_RESERVED_IP:8080
.
Congratulazioni, hai appena impostato il server Rancher su RancherOS.
Puoi riavviare la tua istanza o persino distruggerla / reinstallarla e l'archiviazione a blocchi conserverà i tuoi dati e le tue configurazioni, mentre il tuo IP riservato consentirà ai nuovi agenti Rancher di sapere dove trovare il tuo server.
Alcuni passi successivi:
Set up access control
- almeno, creare un utente amministratore locale con una password sicura.
Add hosts
- nella Add Hosts -> Custom
sezione, copia l'URL che contiene un token lungo specifico per il tuo server Rancher. Ne avrai bisogno per registrare gli agenti Rancher con il tuo server.
Explore
l' ultima documentazione del server Rancher .