We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Развёртывание распределённого кластера Kubernetes (k3s) внутри Termux и оркестрация микросервисов на мобильных узлах

Подробное руководство по развертыванию легковесного Kubernetes (k3s) в Termux на Android устройствах для оркестрации микросервисов. Узнайте, как использовать мобильные устройства в качестве узлов кластера.

В последние годы контейнеризация и оркестрация стали краеугольным камнем современной разработки и развертывания приложений. Kubernetes (K8s) является де-факто стандартом в этой области, обеспечивая масштабируемость, отказоустойчивость и удобство управления контейнеризированными приложениями. Однако, традиционное развертывание Kubernetes требует значительных вычислительных ресурсов и может быть сложным в настройке. В этой статье мы рассмотрим, как развернуть легковесный дистрибутив Kubernetes – k3s – внутри Termux на Android устройствах, создавая распределенный кластер и оркестрируя микросервисы на мобильных узлах.

Что такое Termux и k3s?

Termux – это эмулятор терминала и среды Linux для Android, который позволяет запускать Linux-пакеты, инструменты и серверы непосредственно на вашем мобильном устройстве. Это мощный инструмент для разработчиков, системных администраторов и всех, кто хочет иметь доступ к Linux-окружению на Android.

k3s – это легковесный дистрибутив Kubernetes, разработанный компанией Rancher Labs. Он предназначен для развертывания в средах с ограниченными ресурсами, таких как IoT-устройства, Edge-вычисления и, как мы покажем, мобильные устройства. k3s включает в себя только необходимые компоненты Kubernetes, что делает его простым в установке и эксплуатации.

Предварительные требования

  • Android устройство с установленным Termux.
  • Достаточное пространство на устройстве (минимум 2-3 ГБ рекомендуется).
  • Базовые знания Linux и командной строки.
  • Понимание принципов работы Kubernetes (желательно).

Шаг 1: Установка и настройка Termux

Установите Termux из F-Droid (рекомендуется) или Google Play Store. После установки откройте Termux и обновите пакеты:

pkg update && pkg upgrade

Установите необходимые пакеты:

pkg install openssh curl wget

Шаг 2: Развертывание k3s на первом узле (Master)

На первом устройстве (которое будет выступать в роли master-узла) выполните следующую команду для установки k3s:

curl -sfL https://get.k3s.io | sh -s - server --tls-sans 127.0.0.1

Эта команда скачает и установит k3s, а также настроит его как сервер. После завершения установки k3s запустится автоматически. Вы можете проверить статус службы:

systemctl status k3s

Чтобы получить конфигурационный файл kubeconfig для доступа к кластеру, выполните:

sudo cat /etc/rancher/k3s/k3s.yaml

Сохраните этот файл на вашем компьютере. Вам потребуется скопировать его в Termux, чтобы настроить доступ с других узлов.

Шаг 3: Развертывание k3s на рабочих узлах (Nodes)

На каждом устройстве, которое будет выступать в роли рабочего узла, выполните следующую команду, заменив <SERVER_IP> на IP-адрес master-узла:

curl -sfL https://get.k3s.io | K3S_URL=https://<SERVER_IP> K3S_TOKEN=$(cat /var/lib/rancher/k3s/server/node-token) sh -s agent

Для обнаружения IP адреса master ноды, можно использовать команду ip addr show wlan0 на master ноде. Также можно использовать VPN для создания локальной сети, что упростит настройку и взаимодействие между узлами (важно: VPN используется только для организации локальной сети и не предназначено для обхода каких-либо блокировок).

Убедитесь, что мастер-узел доступен с рабочих узлов по сети.

Шаг 4: Настройка доступа к кластеру

Скопируйте файл k3s.yaml, полученный на master-узле, на каждый рабочий узел в Termux. Затем настройте kubectl для доступа к кластеру:

export KUBECONFIG=/path/to/k3s.yaml

Теперь вы можете использовать kubectl для управления кластером с любого устройства, где настроен kubeconfig.

Шаг 5: Развертывание микросервиса

Разверните простой микросервис (например, nginx) в кластере:

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort

Узнайте, на каком порту доступен ваш сервис:

kubectl get service nginx

Откройте браузер на любом устройстве в сети и перейдите по адресу <NODE_IP>:<NODE_PORT>, чтобы увидеть страницу nginx. NODE_IP - IP адрес одного из узлов кластера. NODE_PORT - порт, указанный в выводе команды kubectl get service nginx.

Заключение

В этой статье мы рассмотрели, как развернуть распределенный кластер Kubernetes (k3s) внутри Termux на Android устройствах. Это открывает новые возможности для разработки, тестирования и развертывания приложений в мобильных средах. Такой кластер может быть полезен для обучения, прототипирования и запуска небольших микросервисов.

РыбинскЛАБ предлагает широкий спектр услуг в области DevOps, Kubernetes и облачных технологий. Мы поможем вам спроектировать, развернуть и поддерживать ваши приложения в облаке, а также обучим вашу команду работе с современными инструментами и технологиями. Свяжитесь с нами для получения консультации и реализации ваших проектов!

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен и доработан перед публикацией.

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

Связаться со мной
Поддержать проект