Системный журнал — практичная база знаний по VPS и Linux
vps • 12 минут

Anbox Cloud: контейнерный и виртуальный Android на Linux VPS

С выходом версии 1.30 Anbox Cloud появилась возможность запускать полные образы Android не только в контейнерах, но и внутри лёгких виртуальных машин. Это расширяет сценарии использования платформы, сохраняя привычный опыт работы с API и инструментами управления.

Что изменилось в архитектуре

Ранее Anbox Cloud работал исключительно с контейнеризированным Android: образ помещался в контейнер, который сам запускался внутри другого контейнера, управляемого LXD. Теперь добавлен второй режим — полная система Android в виде виртуальной машины, также размещённой внутри контейнера LXD. При этом LXD остаётся базовым слоем изоляции и управления ресурсами независимо от выбранного режима.

Контейнерный vs виртуальный Android

  • Контейнерный Android подходит для массового развёртывания приложений, тестирования и автоматизации, где важны быстрый старт, низкое потребление ресурсов и лёгкая горизонтальная масштабируемость.
  • Виртуальный Android обеспечивает полный контроль над стеком ОС: собственное ядро, системные сервисы, вендорские компоненты. Он востребован для разработки прошивок, валидации на уровне устройства, работы с кастомными AOSP/AAOS образами и тестирования, требующего точного воспроизведения поведения железа.

Оба подхода сосуществуют в одной платформе, а выбор делается в зависимости от задачи: для приложений — контейнер, для работы с системой — виртуальная машина.

Подготовка VPS к работе с Anbox Cloud

Поскольку Anbox Cloud опирается на LXD, первым шагом является установка и инициализация этого демона на Ubuntu‑based VPS.

# Обновление пакетов и установка LXD с поддержкой ZFS (рекомендованный бэкенд)
sudo apt update && sudo apt upgrade -y
sudo apt install -y lxd zfsutils-linux

# Инициализация LXD (можно принять значения по умолчанию или настроить хранилище)
sudo lxd init

# Добавление текущего пользователя в группу lxd для работы без sudo
sudo usermod -aG lxd $USER
newgrp lxd

# Убедимся, что сервис LXD запущен и будет стартовать при загрузке
sudo systemctl enable --now lxd

После этого LXD готов принимать образы, предоставляемые Anbox Cloud, и управлять их жизненным циклом через знакомые CLI или REST‑API.

Безопасность и изоляция

LXD обеспечивает строгую изоляцию workloads благодаря использованию пространств имён ядра, контрольных групп (cgroups) и, при необходимости, AppArmor профилей. В конфигурации Anbox Cloud каждый экземпляр Android — будь то контейнер или виртуальная машина — получает собственный файловый сетевой стек, что исключает взаимное влияние между workloads. Для дополнительной защиты рекомендуется:

  • Ограничить доступ к API Anbox Cloud только доверенными сетями с помощью firewall (ufw или nftables).
  • Включить журналирование всех операций через системный журнал (systemd‑journald) и пересылать логи в централизованную систему мониторинга.
  • Регулярно обновлять пакеты lxd и ядра, применяя security‑patches вовремя.

Мониторинг и сбор метрик

Поскольку LXD экспортирует метрики через Prometheus‑совместимый endpoint, их можно подключить к существующей стеку мониторинга. Полезные показатели:

  • Загрузка CPU и памяти каждого контейнера/VM с Android.
  • Количество запущенных экземпляров и их состояние (running, stopped, error).
  • Сети‑трафик, связанный с виртуальными интерфейсами lxdbr0.

Для виртуализированного Android особенно вамониторинг работы ядра и загрузки инициализационных сервисов, что можно делать через стандартные инструменты внутри гостя (например, top, dmesg) и собирать их через агенты, установленные в образ.

Когда выбирать виртуализированный Android

Если ваш проект требует:

  • Кастомного ядра или модулей, специфичных для оборудования;
  • Изменения системных сервисов или добавления вендорских библиотек;
  • Тестирования на уровне совместимости с физическими устройствами (например, автомобильные AAOS‑образы);
  • Воспроизведения ошибок, связанных с низкоуровневым взаимодействием с hardware.

тогда виртуальный режим будет предпочтительнее. В остальных случаях — массовый запуск приложений, автоматизированное тестирование UI, CI‑pipeline — достаточно контейнерного Android, который обеспечивает более высокую плотность размещения и быстрый старт.

Заключение

Релиз Anbox Cloud 1.30 демонстрирует, как платформа может гибко адаптироваться под разные уровни абстракции Android, оставаясь при этом построенной на надёжных Linux‑технологиях: LXD, systemd, пространства имён и cgroups. Администраторы VPS могут быстро поднять окружение, обеспечить его безопасность и интегрировать в существующие системы мониторинга и резервного копирования, получая при этом возможность запускать как простые приложения, так и полноценные системные образы Android в облачной инфраструктуре.