Настраиваем сетевую загрузку talos
Дополнение к статье Настраиваем сетевую загрузку с помощью mikrotik, ipxe, bios, uefi.
Решил добавить примеры сетевой загрузки для talos.
Intro
Недавно купил себе материнскую плату D1581Q3A. На мой взгляд самая подходящая материнская плата для развертывания тестовых кластеров Kubernetes в домашних условиях. 16 ядер, 64 ГБ памяти, наверное, позволят запустить кластер на одном узле.
Фабрика образов
Talos предоставляет отдельный сервис для сборки и генерации образов.
Я использую этот сервис, чтобы получить Talos с нужными мне драйверами (realtek, coral), с нужными программами (iscsi-tools, util-linux-tools).
Вот пример моего образа:
customization:
extraKernelArgs:
- talos.platform=metal
- slab_nomerge
- pti=on
- init_on_alloc=1/0
- init_on_free=0/1
systemExtensions:
officialExtensions:
- siderolabs/gasket-driver
- siderolabs/iscsi-tools
- siderolabs/realtek-firmware
- siderolabs/util-linux-tools
После успешной сборки образа, нужно скачать файлы kernel-amd64, initramfs-amd64.xz, положить в /var/www/html/Talos/1.13.8.
Рекомендую для каждой версии создавать отдельный каталог, места они занимают не много. В случае чего, можно удалить и старые версии и файлы.
menu.ipxe
menu.ipxe - это файл в котором мы настраиваем сетевую загрузку.
SKIPPED - это пропущенные части, весь файл целиком можно посмотреть здесь.
#!ipxe
menu
item --gap -- -------------------------- RockyLinux 8 Installation ----------------------
SKIPPED
item --gap -- -------------------------- Talos --------------------------
item talos_netboot Netboot Talos (HTTP)
item talos_netboot_controlplane Netboot Talos ControlPlane Node (HTTP)
item talos_netboot_worker Netboot Talos Worker Node (HTTP)
SKIPPED
:talos_netboot
set osroot Talos/1.13.8
kernel http://${serverip}/${osroot}/kernel-amd64 \
console=ttyS0 \
console=tty0 \
talos.platform=metal \
slab_nomerge \
pti=on \
init_on_alloc=1/0 \
init_on_free=0/1
initrd http://${serverip}/${osroot}/initramfs-amd64.xz
boot
:talos_netboot_controlplane
set osroot Talos/1.13.8
set talosconfig Talos/configs
kernel http://${serverip}/${osroot}/kernel-amd64 \
console=ttyS0 \
console=tty0 \
talos.platform=metal \
talos.config=http://${serverip}/${talosconfig}/worker.yaml \
slab_nomerge \
pti=on \
init_on_alloc=1/0 \
init_on_free=0/1
initrd http://${serverip}/${osroot}/initramfs-amd64.xz
boot
:talos_netboot_worker
set osroot Talos/1.13.8
set talosconfig Talos/configs
kernel http://${serverip}/${osroot}/kernel-amd64 \
console=ttyS0 \
console=tty0 \
talos.platform=metal \
talos.config=http://${serverip}/${talosconfig}/worker.yaml \
slab_nomerge \
pti=on \
init_on_alloc=1/0 \
init_on_free=0/1
initrd http://${serverip}/${osroot}/initramfs-amd64.xz
boot