Перейти к основному содержимому
User data
Последнее изменение:

User data

к сведению

Использование user data недоступно в кластерах Managed Kubernetes на выделенных серверах.

User data в кластере Managed Kubernetes на облачном сервере — пользовательские параметры для настройки и персонализации кластера. Передаются как скрипт в формате cloud-config (текстовые файлы с YAML-синтаксисом) или как bash-скрипт. Скрипты автоматически кодируются в Base64, а затем передаются на облачный сервер, на котором расположен кластер Managed Kubernetes. На сервере скрипты выполняются с помощью агента cloud-init. Использование user data помогает ускорить и автоматизировать процесс настройки кластера Managed Kubernetes.

Указать user data можно при создании кластера или добавлении новой группы нод.

Подробнее о форматах скриптов cloud-config и bash в инструкции User data formats документации cloud-init.

В скриптах можно передавать параметры для настройки рабочих нод и установки дополнительного программного обеспечения на ноды вне кластера Managed Kubernetes. Например:

Указать user data

Указать user data можно при создании кластера на облачном сервере или добавлении новой группы нод:

  • в панели управления — скрипт с данными, которые не закодированы в Base64, в поле User Data. Максимальный размер скрипта — 47 КБ;
  • через Terraform — только скрипт с данными, которые закодированы в Base64, в аргумент user_data. Максимальный размер скрипта — 65 535 байт.

После добавления user data изменить скрипт нельзя.

Примеры user data

Отключить IPv6

#cloud-config

runcmd:
- echo "options ipv6 disable=1" >> /etc/modprobe.d/ipv6.conf
- sysctl -a
- DisableIPv6Conf="/etc/sysctl.d/99-ipv6-disable.conf"
- cat /dev/null > $DisableIPv6Conf
- echo '# Custom sysctl Parameter for ipv6 disable' >> $DisableIPv6Conf
- echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> $DisableIPv6Conf
- echo 'net.ipv6.conf.default.disable_ipv6 = 1' >> $DisableIPv6Conf
- sysctl --system
- sysctl -p
- sysctl -a | grep -ie "local_port" -ie "ipv6" | sort

Создать каталог и загрузить в него файлы по сети

#cloud-config

runcmd:
- mkdir /run/mydir
- [ wget, "http://example.com", -O, /run/mydir/index.html ]