Översikt
Krav
Cloud-init-skript
PXE-skript
Brandvägg
Starta den
Översikt
RancherOS är ett otroligt lätt operativsystem (endast cirka 60 MB) som kör en "system" Docker-demon som PID 0
för att köra systemtjänster (nätverk, konsolåtkomst och så vidare), samt en "användar" Docker-demon för att köra icke- systemcontainrar, (MySQL, Rancher och mer).
Rancher är en containerdriven orkestreringsplattform för att hantera containrar, såväl som bredare aspekter av infrastruktur som värdar, miljöer och mer. En Rancher-server styr orkestreringen och en Rancher-agent distribueras till varje värd som hanteras av Rancher.
I den här artikeln går vi igenom följande steg för att distribuera en Rancher-server:
Cloud-init script
- Publicera en cloud-init-fil för att installera och köra Rancher-servern.
PXE script
- Skriv ett PXE-skript för att hämta cloud-init-filen och starta upp värden för första gången.
Firewall
- Skapa en brandväggsgrupp, eftersom säkerheten är av största vikt.
Start it up
- Tillhandahålla värden och installera Rancher.
Krav
- VPS med minst 1 GB RAM - Vi installerar Rancher server på denna värd.
- Blockera lagring - För att permanent lagra Rancher-serverns data, konfigurationer, användare och mer.
- 1 Reserverad IP-adress - För att ge Rancher-agenter en konsekvent IP-adress att använda för att gå med i Rancher-miljön.
Cloud-init-skript
Spara följande skript på en plats som din värd kan nå via HTTP/HTTPS
så att den kan referera till det från sitt PXE-skript.
Byt ut ssh-...
delarna med din offentliga SSH-nyckel så att du kan SSH till värden.
#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
Observera att detta faktiskt är att plantera en cloud-config.yml
inuti en annan cloud-config.yml
. Den yttre laddas när iPXE startar värden för första gången, och den installerar Rancher på värdens enhet /dev/vda
. Den inre konfigurationen är för efterföljande uppstarter och kommer faktiskt att starta Rancher-servern.
MySQL-data lagras på blocklagringen /dev/vdb
, så de kritiska Rancher-serverdata och konfigurationer kan överleva utbyte av VPS-värden.
Du kan ladda upp skriptet till valfritt antal gratis platser som är tillgängliga som en URL offentligt, eller så kan du vara värd för det på en annan VPS så att det bara är tillgängligt för dina värdar via ett privat nätverk.
PXE-skript
Kopiera följande som ett PXE-startskript som heter " Rancher Server
" medan du ersätter CLOUD_CONFIG_URL
med URL:en för din cloud-config.yml
fil (något i stil med 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
Detta kommer att hämta den senaste RancherOS ISO och starta upp den till minnet med ditt cloud-init-skript. Ditt cloud-init-skript kommer sedan att fortsätta att installera RancherOS på disken, och den andra uppstarten kommer att köra Rancher-serverbehållaren.
Brandvägg
När Rancher först blir tillgänglig kommer alla som träffar slutpunkten omedelbart att ha administratörsbehörighet.
För att förhindra utomstående från att kapa din Rancher-server, skapa en brandvägg som heter "Rancher Server" med följande regler:
TCP 22
på din IP, så att du kan SSH till värden.
TCP 8080
på din IP, så att du kan ladda Rancher-serverns webbsida.
TCP 8080
för alla Rancher-agentvärdar, så att de kan registrera sig på Rancher-servern.
Starta den
Tillhandahåll din värd på 1+ GB i samma region som din blocklagring och ställ Server Type
in den på "Rancher Server" iPXE anpassade startskript.
När den väl har startat, se till att konvertera dess IP till en reserverad IP så att dina Rancher-agenter har en slutpunkt de kan registrera sig med konsekvent.
Det kommer att ta ~4 minuter för iPXE att dra RancherOS ISO, den första uppstarten att installera RancherOS till /dev/vda
och för den andra uppstarten att dra rancher/server:stable
Docker-avbildningen och starta upp dess behållare.
När den är klar kan du nå den på http://YOUR_RESERVED_IP:8080
.
Grattis, du har precis konfigurerat Rancher-servern på RancherOS.
Du kan starta om din instans eller till och med förstöra/installera om den, och blocklagringen kommer att bevara dina data och konfigurationer medan din reserverade IP tillåter nya Rancher-agenter att veta var de kan hitta din server.
Några nästa steg:
Set up access control
- åtminstone skapa en lokal administratörsanvändare med ett säkert lösenord.
Add hosts
- i Add Hosts -> Custom
avsnittet, kopiera URL:en som innehåller en lång token som är specifik för din Rancher-server. Du behöver detta för att registrera Rancher-agenter på din server.
Explore
den senaste dokumentationen för Rancher-servern .