Перейти к содержанию

Образы ОС

Внимание!

Работа GPU возможна только на узлах с ядром linux 6.1+

Перед началом установки подготовьте образы с желаемой ОС. Мы предлагаем два варианта:

  • Использовать подготовленный командой Bootsman образ
  • Подготовить образ самим в соответствии с нашими инструкциями

Подготовка образа

Создайте инстанс в облаке или гипервизоре и проведите настройку.

Базовые настройки

Выключите SWAP и включите компоненты ядра

swapoff -a && sed -ri '/\sswap\s/s/^#?/#/' /etc/fstab
modprobe overlay && modprobe br_netfilter
mkdir /etc/containerd
Создайте файл /etc/sysctl.d/sysctl.conf с помощью команды
cat <<EOF > /etc/sysctl.d/sysctl.conf
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.disable_ipv6=0
net.ipv4.tcp_congestion_control=bbr
vm.overcommit_memory=1
kernel.panic=10
kernel.panic_on_oops=1
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=524288
EOF
Создайте файл /etc/modules-load.d/containerd.conf с помощью команды
cat <<EOF > /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF

Отключение брандмауэра

ufw disable

Загрузка kubernetes компонентов

Загрузите с нашего публичного S3-хранилища дополнительные файлы:

- containerd
- k8s_${Kubernetes_Version}/(deb|rpm)/*

Заметка

Kubernetes_Version - соответствует желаемой версии Kubernetes deb - для Astra и Ubuntu rpm - для RedOS

Установка kubernetes компонентов

Установите зависимости kubernetes

apt install -y socat ebtables ethtool conntrack open-iscsi nfs-common
Установите containerd из скачанного архива

tar -C / -xvf cri-containerd-cni-*.tar.gz

Установите Kubernetes пакеты

for pkg in cri-tools kubernetes-cni kubectl kubelet kubeadm; do
dpkg --install $pkg*.deb
done
apt-mark hold cri-tools kubernetes-cni kubectl kubelet kubeadm

Далее примените изменения в sysctl и включите containerd

sysctl --system
systemctl daemon-reload && systemctl enable containerd && systemctl start containerd

Установите зависимости kubernetes

yum install -y socat ebtables ethtool conntrack iscsi-initiator-utils nfs-utils
systemctl enable iscsid
systemctl start iscsid
Установите containerd из скачанного архива

tar -C / -xvf cri-containerd-cni-*.tar.gz

Установите Kubernetes пакеты

rpm -U *.$(uname -m).rpm

Далее примените изменения в sysctl и включите containerd

sysctl --system
systemctl daemon-reload && systemctl enable containerd && systemctl start containerd

Дополнительные сетевые настройки

Создайте юнит для автозапуска настроек

cat <<EOF > /etc/systemd/system/ethtool-conf.service
[Unit]
After=network.target

[Service]
ExecStart=/usr/local/bin/ethtool-conf.sh

[Install]
WantedBy=default.target
EOF
И сам скрипт

Заметка

Используйте имя вашего основного интерфейса вместо ${INTERFACE_NAME}

cat <<EOF > /usr/local/bin/ethtool-conf.sh
#!/bin/bash

ethtool -K ${INTERFACE_NAME} tx-udp_tnl-csum-segmentation off
ethtool -K ${INTERFACE_NAME} tx-udp_tnl-segmentation off
EOF
chmod 744 /usr/local/bin/ethtool-conf.sh
chmod 664 /etc/systemd/system/ethtool-conf.service
systemctl daemon-reload
systemctl enable ethtool-conf.service --now

Настройка Cloud-init

Очистите cloud-init и выключите инстанс

cat /dev/null > /etc/machine-id
cloud-init clean --logs

Установите утилиту cloud-utils-growpart

yum install -y cloud-utils-growpart

Добавьте опцию "prefer_fqdn_over_hostname: false"

echo "prefer_fqdn_over_hostname: false" > /etc/cloud/cloud.cfg.tmp
cat /etc/cloud/cloud.cfg >> /etc/cloud/cloud.cfg.tmp
rm -f /etc/cloud/cloud.cfg
mv /etc/cloud/cloud.cfg.tmp /etc/cloud/cloud.cfg

Включите автозапуск cloud-init

systemctl enable cloud-init-local.service
systemctl enable cloud-init.service
systemctl enable cloud-config.service
systemctl enable cloud-final.service

Очистите cloud-init и выключите инстанс

cat /dev/null > /etc/machine-id
cloud-init clean --logs

Поддержка GPU

Для создания образа с поддержкой GPU для baremetal или vsphere инсталяций потребуются дополнительные настройки

Добавьте дополнительную опцию загрузки ядра: в файл /etc/default/grub, в строку GRUB_CMDLINE_LINUX_DEFAULT=

pci=nocrs,realloc
Итоговый файл должен иметь вид:
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="parsec.mac=0 parsec.max_ilev=0 quiet net.ifnames=0 pci=nocrs,realloc"

cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-6.1.90-1-generic root=UUID=c3e1f0eb-c6f9-49fe-b726-f28ff6755df4 ro parsec.mac=0 parsec.max_ilev=0 quiet net.ifnames=0 pci=nocrs,realloc

Выключите машину

shutdown now

Для гипервизора vsphere потребеются дополнительные опции машин в Advanced Parameters

Для этого выберете выключенную машину для образа, заходим в Settings > Advanced Parameters Advanced Parameters Добавьте дополнительные параметры

pciPassthru.64bitMMIOSizeGB=128
pciPassthru.use64bitMMIO=TRUE

Создание образа

Выключите машину, если не выключили в рамках настройки GPU

shutdown now

После выключения подготовленного инстанса сконвертируйте его образ. В зависимости от использованного облака, воспользуйтесь инструкцией Yandex или инструкцией VK

Когда статус образа перейдет в статус Ready, подготовленный инстанс можно удалять.

Подготовленные образы операционных систем

Yandex Cloud

Для того, чтобы воспользоваться образами, вам понадобится скопировать их к себе в облако.

Для этого выполните команду:

yc compute image create --name IMAGE_NAME --source-image-id SOURCE_IMAGE_ID --cloud-id bpfj5pch0mue9u8c2ivf
Где

  • IMAGE_NAME имя образа, с которым он сохранится у вас в облаке
  • SOURCE_IMAGE_ID id образа из таблицы ниже
OS k8s version id
Astra linux 1.7 v1.27.6 fd8gip2ucbk3h325stb5
Astra linux 1.7 v1.28.4 fd88h9tug1m9732jd4sp
Astra linux 1.7 v1.29.3 fd8l1q6h6mt41otreeeo
Astra linux 1.7 v1.30.7 fd8dins18t68rnqavlco
RedOS 7.3 v1.27.6 fd83un107v6icbpuv63s
RedOS 7.3 v1.28.4 fd8gijdrltjl1fmtekad
RedOS 7.3 v1.29.3 fd82fg1rni14hfoq6er5
RedOS 7.3 v1.30.7 fd8mihcdg7b445sj8u72
RedOS 8.0 v1.27.6 fd8hvolj70rfb7rr4ta5
RedOS 8.0 v1.28.4 fd8ar983ofo7rrhj314l
RedOS 8.0 v1.29.3 fd8gscp5pfjcjttsn2ud
RedOS 8.0 v1.30.7 fd80tfbglqtd1qb7n71m
Ubuntu 22.04 v1.27.6 fd85vjpmfo6m399go0hi
Ubuntu 22.04 v1.28.4 fd8msmp711le03rhgejm
Ubuntu 22.04 v1.29.3 fd85ocn6635rgd15fqlu
Ubuntu 22.04 v1.30.7 fd8l9eofn9e5kknodj1n

VK Cloud/vSphere/Brest

Чтобы воспользоваться образами, выберите образ, скачайте, распакуйте и импортируйте в интересующую вас среду.

s3-bucket: https://storage-console.bootsman.host/browser/bootsman-public
path: template-os/vk/