Огляд
Вимоги
Скрипт Cloud-init
PXE скрипт
Брандмауер
Запустіть його
Огляд
RancherOS — це неймовірно легка операційна система (всього близько 60 МБ), яка запускає «системний» демон Docker PID 0
для запуску системних служб (мережа, доступ до консолі тощо), а також «користувацький» демон Docker для запуску не- системні контейнери (MySQL, Rancher тощо).
Rancher — це контейнерна оркестрова платформа для керування контейнерами, а також більш широкими аспектами інфраструктури, такими як хости, середовища тощо. Сервер Rancher контролює оркестрацію, а агент Rancher розгортається на кожному хості, яким керує Rancher.
У цій статті ми розглянемо наступні кроки для розгортання сервера Rancher:
Cloud-init script
- Опублікуйте файл cloud-init для встановлення та запуску сервера Rancher.
PXE script
- Напишіть сценарій PXE, щоб отримати файл ініціалізації хмари та завантажити хост вперше.
Firewall
- Створіть групу брандмауера, оскільки безпека є першорядною.
Start it up
- Надайте хост і встановіть Rancher.
Вимоги
- VPS з мінімум 1 ГБ ОЗУ - ми встановимо сервер Rancher на цьому хості.
- Блокове сховище - для постійного зберігання даних, конфігурацій, користувачів та іншого сервера Rancher.
- 1 Зарезервована IP-адреса – щоб надати агентам Rancher послідовну IP-адресу для використання для приєднання до середовища Rancher.
Скрипт Cloud-init
Збережіть наступний сценарій у місці, доступному вашому хосту через, HTTP/HTTPS
щоб він міг посилатися на нього зі свого PXE-скрипту.
Замініть ssh-...
частини своїм відкритим ключем SSH, щоб ви могли зайти на хост по SSH.
#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
Зауважте, що це фактично посадка cloud-config.yml
всередину іншого cloud-config.yml
. Зовнішній завантажується, коли iPXE завантажує хост вперше, і він встановлює Rancher на диск хоста /dev/vda
. Внутрішня конфігурація призначена для наступних завантажень і фактично запускає сервер Rancher.
Дані MySQL зберігаються в блочному сховищі /dev/vdb
, тому важливі дані та конфігурації сервера Rancher можуть пережити заміну хоста VPS.
Ви можете завантажити сценарій у будь-яку кількість безкоштовних місць, які доступні для всіх у вигляді URL-адреси, або ви можете розмістити його на іншому VPS, щоб до нього могли отримати доступ лише ваші хости через приватну мережу.
PXE скрипт
Скопіюйте наступне як сценарій запуску PXE під назвою " Rancher Server
", замінивши CLOUD_CONFIG_URL
його URL-адресою вашого cloud-config.yml
файлу (щось на кшталт 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
Це витягне останню версію ISO RancherOS і завантажить її в пам’ять за допомогою вашого сценарію ініціалізації в хмарі. Після цього ваш сценарій cloud-init перейде до встановлення RancherOS на диск, а під час другого завантаження буде запущено контейнер сервера Rancher.
Брандмауер
Коли Rancher вперше стане доступним, кожен, хто досягне кінцевої точки, одразу отримає права адміністратора.
Щоб сторонні особи не захопили ваш сервер Rancher, створіть брандмауер під назвою "Rancher Server" з такими правилами:
TCP 22
на вашому IP-адресі, щоб ви могли підключитися до хоста по SSH.
TCP 8080
на вашому IP, щоб ви могли завантажити веб-сторінку сервера Rancher.
TCP 8080
для будь-яких хостів агентів Rancher, щоб вони могли зареєструватися на сервері Rancher.
Запустіть його
Надайте свій хост розміром 1+ ГБ у тому ж регіоні, що й блочне сховище, і встановіть Server Type
для нього спеціальний сценарій запуску iPXE «Rancher Server».
Після завантаження не забудьте перетворити його IP-адресу на зарезервовану IP-адресу, щоб ваші агенти Rancher мали кінцеву точку, на якій вони могли реєструватися послідовно.
IPXE займе ~4 хвилини, щоб витягнути ISO RancherOS, перше завантаження — для встановлення RancherOS на /dev/vda
, а для другого завантаження — витягти rancher/server:stable
образ Docker та запустити його контейнери.
Щойно це буде, ви зможете дістатися до нього за адресою http://YOUR_RESERVED_IP:8080
.
Вітаємо, ви щойно налаштували сервер Rancher на RancherOS.
Ви можете перезапустити свій екземпляр або навіть знищити/перевстановити його, і блочне сховище збереже ваші дані та конфігурації, а ваш зарезервований IP дозволить новим агентам Rancher знати, де знайти ваш сервер.
Кілька наступних кроків:
Set up access control
- принаймні створіть локального користувача адміністратора із захищеним паролем.
Add hosts
- у Add Hosts -> Custom
розділі скопіюйте URL-адресу, яка містить довгий маркер, характерний для вашого сервера Rancher. Це вам знадобиться, щоб зареєструвати агентів Rancher на вашому сервері.
Explore
останній Rancher сервер документації .