В мире разработки микросервисов, возможность быстрого развертывания и тестирования приложений – ключевой фактор успеха. Kubernetes стал де-факто стандартом для оркестрации контейнеров, но традиционное развертывание Kubernetes может быть ресурсоемким и сложным. K3s – это легковесная дистрибуция Kubernetes, разработанная компанией Rancher Labs, идеально подходящая для развертывания на устройствах с ограниченными ресурсами, таких как смартфоны и планшеты под управлением Termux.
В этой статье мы рассмотрим, как развернуть распределённый кластер k3s в Termux для разработки и тестирования микросервисов прямо на вашем мобильном устройстве. Мы сфокусируемся на создании локальной среды, не подразумевая использование VPN для обхода каких-либо блокировок, а исключительно для организации локальной сети между устройствами, если необходимо.
Необходимые условия
- Android устройство с установленным Termux.
- Достаточно свободного места на устройстве (минимум 2-3 ГБ).
- Подключение к интернету для загрузки необходимых пакетов.
- Понимание базовых концепций Kubernetes (Pod, Deployment, Service).
Установка Termux
Если Termux еще не установлен, скачайте его из F-Droid. F-Droid – это репозиторий приложений с открытым исходным кодом, который является предпочтительным способом установки Termux, так как он позволяет избежать проблем с Google Play Store.
Подготовка Termux
После установки Termux необходимо выполнить несколько подготовительных шагов:
pkg update && pkg upgrade
pkg install openssh curl wget jq
Эти команды обновят пакеты, установят необходимые инструменты, такие как OpenSSH для удаленного доступа, curl и wget для загрузки файлов и jq для обработки JSON.
Установка k3s
Установка k3s в Termux достаточно проста. Используйте следующую команду:
curl -sfL https://get.k3s.io | sh -s server --disable traefik --disable servicelb --write-kubeconfig-mode 644
Эта команда загрузит и установит k3s в режиме сервера. Опции --disable traefik и --disable servicelb отключают Traefik (ingress controller) и Service LoadBalancer, так как они не всегда необходимы для локальной разработки и тестирования и могут потребовать дополнительных настроек.
Настройка k3s
После установки k3s необходимо получить kubeconfig файл для доступа к кластеру. Он находится по адресу /etc/rancher/k3s/k3s.yaml. Для удобства можно скопировать его в домашнюю директорию:
cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
Убедитесь, что файл ~/.kube/config существует и содержит правильные настройки для доступа к вашему кластеру k3s.
Развертывание приложения
Теперь, когда k3s установлен и настроен, можно развертывать приложения. Например, можно развернуть простое приложение nginx:
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
Эти команды создадут Deployment для nginx и откроют его через NodePort. Чтобы узнать, на каком порту доступно приложение, выполните команду:
kubectl get service nginx
Вы увидите порт NodePort, на котором доступно приложение. В Termux можно использовать curl для доступа к приложению:
curl localhost:<nodeport>
Расширение кластера (опционально)
Для создания распределенного кластера можно использовать несколько устройств Termux. На каждом устройстве, которое будет узлом кластера, необходимо выполнить следующие шаги:
- Установите Termux и подготовьте его, как описано выше.
- Получите токен для присоединения к кластеру на сервере (master node):
sudo cat /var/lib/rancher/k3s/server/node-token - На каждом узле выполните команду:
curl -sfL https://get.k3s.io | K3S_URL=https://<server_ip>:6443 K3S_TOKEN=<node_token> sh -s agent. Замените<server_ip>на IP адрес сервера, а<node_token>на полученный токен.
Важно: Для взаимодействия между устройствами в локальной сети, может потребоваться настройка сети (например, использование VPN для создания локальной сети, не для обхода блокировок). Использование VPN должно соответствовать законодательству РФ.
Заключение
В этой статье мы рассмотрели, как развернуть и использовать легковесный кластер Kubernetes (k3s) в Termux для разработки и тестирования микросервисов. Это позволяет разработчикам быстро создавать и тестировать приложения в мобильной среде, не требуя мощного оборудования и сложной настройки. Развертывание k3s в Termux – отличный способ для изучения Kubernetes и экспериментов с микросервисной архитектурой.
Если вам требуется помощь в развертывании и настройке Kubernetes или других облачных технологий, а также в разработке и внедрении микросервисных приложений, обращайтесь в РыбинскЛАБ. Мы предлагаем широкий спектр услуг, включая консультации, разработку, развертывание и поддержку облачных инфраструктур.