Добавить в корзинуПозвонить
Найти в Дзене
Николай Калюжный

Сборка кластера K3S с помощью Armbian на Orange Pi 5 Plus: пошаговое руководство

В этом сообщении блога я поделюсь своим практическим опытом создания кластера K3s на Orange Pi 5 Plus (opi5+) с использованием Armbian в качестве операционной системы (ОС) и Ansible. Этот пост задуман как простое руководство для всех, кто хочет повторить этот процесс. Я надеюсь, что это окажется полезным для вашей собственной системы. Обратите внимание, что в некоторых разделах есть ссылки на внешние руководства, содержащие соответствующие шаги. После моей неудачной попытки использовать Fedora CoreOS, Armbian + K3s был одним из вариантов, которые я рассматривал. Среди причин выбора Armbian в качестве ОС можно выделить: Есть несколько вещей, о которых вы должны знать: Были сделаны следующие предположения: Для выполнения этой задачи используются следующие элементы: Были приобретены два дополнительных элемента, специально для сервера хранения данных Linux и не предназначенные для кластера K3s. Ниже приведена подробная информация об этих элементах на случай, если они послужат справкой. Обр
Оглавление

В этом сообщении блога я поделюсь своим практическим опытом создания кластера K3s на Orange Pi 5 Plus (opi5+) с использованием Armbian в качестве операционной системы (ОС) и Ansible. Этот пост задуман как простое руководство для всех, кто хочет повторить этот процесс. Я надеюсь, что это окажется полезным для вашей собственной системы.

Обратите внимание, что в некоторых разделах есть ссылки на внешние руководства, содержащие соответствующие шаги.

Почему Армбиан?

После моей неудачной попытки использовать Fedora CoreOS, Armbian + K3s был одним из вариантов, которые я рассматривал. Среди причин выбора Armbian в качестве ОС можно выделить:

  • Широкая поддержка аппаратного обеспечения: Armbian обеспечивает поддержку широкого спектра одноплатных компьютеров (SBC) на базе ARM, что дает вам гибкость в выборе оборудования для кластера K3s.
  • Стабильность и надежность: Armbian известен своей стабильностью и надежностью, что делает его подходящим выбором для создания прочных и устойчивых кластеров K3s.
  • Оптимизирован для архитектуры ARM: Armbian оптимизирован специально для архитектуры ARM, обеспечивая эффективную производительность на устройствах на базе ARM, обычно используемых для SBC.
  • Регулярные обновления: Armbian выпускает регулярные обновления и патчи безопасности, помогая вам поддерживать вашу систему в актуальном состоянии и безопасности.
  • Низкое потребление ресурсов: Armbian разработан для эффективного использования ресурсов, что делает его подходящим для сред с ограниченными ресурсами, распространенных в SBC, что идеально подходит для создания экономичных кластеров K3s.
  • Поддержка сообщества: Будучи проектом с открытым исходным кодом, Armbian имеет активное сообщество, которое предоставляет поддержку, документацию и помощь в устранении неполадок, что может быть ценным при настройке и обслуживании кластера K3s.

Предупреждение

Есть несколько вещей, о которых вы должны знать:

  • Это лабораторная среда.
  • Некоторые шаги включают в себя команды, которые стирают данные.

Предположения

Были сделаны следующие предположения:

  • Устройство — версия Orange Pi 5+.
  • Есть еще один ноутбук/ПК для подготовки.

Препараты

Элементы

Для выполнения этой задачи используются следующие элементы:

Другие предметы

Были приобретены два дополнительных элемента, специально для сервера хранения данных Linux и не предназначенные для кластера K3s. Ниже приведена подробная информация об этих элементах на случай, если они послужат справкой. Обратите внимание, что они не предназначены и не являются обязательными для кластера K3s:

Установка Armbian

Чтобы установить Armbian, следуйте инструкциям Armbian Quickstart. Эти шаги включают в себя:

  1. Скачивание образа Armbian для opi5+
  2. Установка образа Armbian на SD-карту
  3. Загрузившись с SD-карты, выполните базовую конфигурацию и установите образ в opi5+ eMMC с помощью: armbian-install
  4. Выключение питания
  5. Извлечение SD-карты
  6. Загрузка в eMMC и Armbian

Другие базовые конфигурации

Извлеките SD-карту

Загрузите eMMC и настройте основные параметры, прежде чем продолжить. Для установки K3s с помощью ansible требуется доступ с помощью ключей SSH без запроса пароля. Остальные шаги не являются обязательными:

  1. Получите root-доступ
  2. Смена пароля root
  3. Изменение пароля пользователя
  4. Обновление ОС и пакетов
  5. Разрешить sudo без пароля
  6. Разрешение проверки подлинности с помощью ключей SSH
  7. Настройка /etc/hosts
  8. Создание сетевого объединения/связи

Ниже приведены команды для выполнения перечисленных выше действий. Изменяйте значения переменных в соответствии с контекстом. Повторите их в каждом из остальных устройств. Помните, что вам нужен root-доступ:

## as root. # sudo bash
## change passwords # passwd root # passwd ${opi_hostname}
## upgrade pkgs apt update
DEBIAN_FRONTEND=noninteractive apt upgrade -y
## vars /CHANGE_THEM opi_username=changeme
opi_hostname=changeme-01
opi_domain=change.me
opi_fqdn=${opi_hostname}.${opi_domain} opi_cidr=192.168.1.10/24
opi_gw=192.168.1.1
opi_dns='8.8.8.8 8.8.4.4' opi_ssh_authorized_key='ssh-rsa CHANGEME'
## sudo cat << _EOF > /etc/sudoers.d/10-opi5-user
# User rules for ${opi_username} ${opi_username} ALL=(ALL) NOPASSWD:ALL
_EOF

## ssh mkdir -p /home/${opi_username}/.ssh
cat << _EOF > /home/${opi_username}/.ssh/authorized_keys
ssh-rsa ${opi_ssh_authorized_key} _EOF
chmod 0700 -R /home/${opi_username}/.ssh
chown ${opi_username}:${opi_username} -R /home/${opi_username}/.ssh
sed -i "s@#PasswordAuthentication.*@PasswordAuthentication no@" \ /etc/ssh/sshd_config
systemctl restart ssh

## /etc/hosts cat << _EOF > /etc/hosts
127.0.0.1 localhost
127.0.1.1 ${opi_fqdn} ${opi_hostname}
::1 localhost ip6-localhost ip6-loopback ${opi_fqdn} ${opi_hostname}
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
_EOF

## hostname hostnamectl set-hostname ${opi_hostname}
## lock root password passwd -l root

## network bonding # workaround: https://github.com/coreos/fedora-coreos-tracker/issues/919 cat << _EOF > /etc/systemd/network/98-bond-inherit-mac.link
[Match]
Type=bond

[Link]
MACAddressPolicy=none
_EOF

# add bond interface # this could cause disconection nmcli connection add type bond con-name bond0 ifname bond0 \ bond.options "mode=balance-alb,miimon=1000" \ ipv4.addresses "${opi_cidr}" ipv4.gateway "${opi_gw}" \ ipv4.dns "${opi_dns}" ipv4.dns-search "${opi_domain}" \ ipv4.method manual bond.options "mode=balance-alb,miimon=1000" \ mtu 9000
# add current devices nmcli connection add type ethernet slave-type bond \ con-name bond0-port1 ifname enP3p49s0 master bond0 mtu 9000
nmcli connection add type ethernet slave-type bond \ con-name bond0-port2 ifname enP4p65s0 master bond0 mtu 9000
# delete old connections nmcli connection delete "Wired connection 1" nmcli connection delete "Wired connection 2"

Установка K3s

Теперь вы готовы к установке K3s, используя Ansible и роль K3s. Выполните следующие действия в системе, отличной от ваших устройств Opi5+:

  1. Установка Ansible и роли K3s.Для установки Ansible вы можете запустить pip install ansible
    Для установки
    роли K3s вы можете запустить ansible-galaxy role install xanmanning.k3s
  2. Установите кластер K3s с высокой доступностью (HA) со встроенным etcd, выполнив следующие действия. К ним относятся:Создание инвентаря с помощью устройств opi5+
    Создание сборника схем с использованием этого инвентаря и
    роли K3s Запуск сборника схем

В заключение можно сказать, что сборка кластера K3s на Orange Pi 5 Plus была практическим опытом. Теперь я буду использовать его для разработки и тестирования экземпляров Moodle™, управляемых операторами Krestomatio для Kubernetes. Я надеюсь, что это руководство поможет вам сделать то же самое. Удачи в настройке кластера K3s на Orange Pi 5 Plus, и я надеюсь, что вы тоже получите удовольствие!