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

Образы ОС

Внимание!

Работа 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.28.4 fd8q426d72ejqihvmfvj
Astra linux 1.7 v1.29.3 fd80pubsuot46h500lnc
Astra linux 1.7 v1.30.7 fd8ao375bhd6b6a0ufgv
Astra linux 1.7 v1.31.3 fd807ep6vusd03n2ahmm
Astra linux 1.8 v1.28.4 fd8i7dsbfkqhef2l16b2
Astra linux 1.8 v1.29.3 fd8jselg2l7tg0ersqe1
Astra linux 1.8 v1.30.7 fd8cf5dmhveshlv1t71h
Astra linux 1.8 v1.31.3 fd8du6t4s01e8jdnmeke
RedOS 7.3 v1.28.4 fd83bmiotuuectqaur32
RedOS 7.3 v1.29.3 fd8rvktnh8b81eond5uh
RedOS 7.3 v1.30.7 fd8qmv0mpjnib5uvt8ap
RedOS 7.3 v1.31.3 fd8mcnf40jpd9ptjq12v
RedOS 8.0 v1.28.4 fd846eig49vhukbn88ud
RedOS 8.0 v1.29.3 fd80fl92rlea7fvd3d87
RedOS 8.0 v1.30.7 fd8j26qu1hccs3j1vbbb
RedOS 8.0 v1.31.3 fd8l8d3r2amiemsk1g4r
Ubuntu 22.04 v1.28.4 fd8qjc4rspdub7btk7vi
Ubuntu 22.04 v1.29.3 fd8klidijcdvniki97hf
Ubuntu 22.04 v1.30.7 fd84o37k6baibv33iis8
Ubuntu 22.04 v1.31.3 fd80kehoghcg1oa01eo9

VK Cloud/vSphere/Brest

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

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

Следующий шаг