- Создан совместимый образ Astra Linux для ARM64 на базе Debian - Добавлена команда make docker build-astra-arm64 для сборки ARM64 версии - Обновлена документация по Docker образам с информацией о ARM64 поддержке - Создан новый файл docs/arm64-support.md с подробным описанием ARM64 поддержки - Обновлен README.md с информацией о multi-arch поддержке - Добавлена информация о ALT Linux P9/P10 с поддержкой ARM64 Автор: Сергей Антропов Сайт: https://devops.org.ru
7.9 KiB
7.9 KiB
Поддержка ARM64 в DevOpsLab
Автор: Сергей Антропов
Сайт: https://devops.org.ru
Версия: 1.0.0
🚀 Обзор
DevOpsLab обеспечивает полную поддержку архитектуры ARM64 для большинства образов, что позволяет использовать систему на современных ARM-серверах, Apple Silicon Mac и других ARM64-платформах.
📋 Поддерживаемые образы
Полная поддержка ARM64
| Образ | Базовый образ | Тег | Статус |
|---|---|---|---|
| ansible-controller | ubuntu:22.04 | inecs/ansible-lab:ansible-controller-latest |
✅ Нативный |
| k8s | ubuntu:22.04 | inecs/ansible-lab:k8s-latest |
✅ Нативный |
| ubuntu20/22/24 | ubuntu:20.04/22.04/24.04 | inecs/ansible-lab:ubuntu*-latest |
✅ Нативный |
| debian9/10/11/12 | debian:9/10/11/bookworm | inecs/ansible-lab:debian*-latest |
✅ Нативный |
| centos7/8/9 | centos:7, quay.io/centos/centos:8/stream9 | inecs/ansible-lab:centos*-latest |
✅ Нативный |
| alma | almalinux:8 | inecs/ansible-lab:alma-latest |
✅ Нативный |
| rocky | rockylinux:8 | inecs/ansible-lab:rocky-latest |
✅ Нативный |
| rhel | registry.access.redhat.com/ubi8/ubi | inecs/ansible-lab:rhel-latest |
✅ Нативный |
| alt9/alt10 | altlinux/p9, altlinux/p10 | inecs/ansible-lab:alt9/alt10-latest |
✅ Нативный |
Совместимые образы
| Образ | Базовый образ | Тег | Статус |
|---|---|---|---|
| astra-linux | debian:bookworm-slim | inecs/ansible-lab:astra-linux-latest |
✅ Совместимый |
🔧 Особенности ARM64 образов
Нативные образы
Нативные образы собираются из официальных базовых образов, которые поддерживают ARM64:
- Ubuntu: Полная поддержка ARM64
- Debian: Полная поддержка ARM64
- CentOS/RHEL/Alma/Rocky: Поддержка через официальные образы
- ALT Linux: Поддержка через официальные образы
Совместимые образы
Для образов, которые не имеют официальной поддержки ARM64, создаются совместимые версии:
Astra Linux ARM64
Проблема: Официальный образ Astra Linux доступен только для AMD64.
Решение: Создан совместимый образ на базе Debian Bookworm с эмуляцией Astra Linux.
Особенности:
- Эмулирует Astra Linux через настройку
/etc/os-release - Устанавливает все необходимые пакеты
- Максимально совместим с оригинальным Astra Linux
- Поддерживает Docker CE и Docker Compose
🚀 Использование ARM64 образов
Автоматический выбор платформы
Docker автоматически выберет правильную архитектуру:
# Автоматический выбор (рекомендуется)
docker run inecs/ansible-lab:ubuntu22-latest
docker run inecs/ansible-lab:astra-linux-latest
Явное указание платформы
# ARM64 версия
docker run --platform linux/arm64 inecs/ansible-lab:ubuntu22-latest
# AMD64 версия
docker run --platform linux/amd64 inecs/ansible-lab:ubuntu22-latest
Проверка архитектуры
# Проверить архитектуру образа
docker run --rm inecs/ansible-lab:ubuntu22-latest uname -m
# Проверить манифест образа
docker manifest inspect inecs/ansible-lab:ubuntu22-latest
🧪 Тестирование на ARM64
Molecule тесты
# Тестирование с ARM64 образами
make role test minimal
# Проверка поддержки ARM64 в preset
make presets info PRESET=minimal
Preset конфигурация
# molecule/presets/arm64-test.yml
images:
ubuntu22: "inecs/ansible-lab:ubuntu22-latest"
astra-linux: "inecs/ansible-lab:astra-linux-latest"
alt9: "inecs/ansible-lab:alt9-latest"
hosts:
- name: arm64-ubuntu
family: ubuntu22
groups: [arm64, test]
- name: arm64-astra
family: astra-linux
groups: [arm64, test]
- name: arm64-alt
family: alt9
groups: [arm64, test]
🔨 Сборка ARM64 образов
Стандартная сборка
# Сборка всех образов (включая ARM64)
make docker build
# Сборка конкретного образа
make docker build-image IMAGE=ubuntu22
Специальная сборка Astra Linux
# Сборка Astra Linux с поддержкой ARM64
make docker build-astra-arm64
Проверка сборки
# Проверить манифест образа
docker manifest inspect inecs/ansible-lab:ubuntu22-latest
# Должен показать поддержку обеих архитектур:
# - linux/amd64
# - linux/arm64
📊 Производительность
Apple Silicon Mac
- Нативные образы: Полная производительность
- Совместимые образы: Хорошая производительность с эмуляцией
- Рекомендация: Используйте нативные образы когда возможно
ARM64 серверы
- AWS Graviton: Отличная производительность
- Azure Ampere: Отличная производительность
- Hetzner ARM: Хорошая производительность
🐛 Известные ограничения
Astra Linux ARM64
- Не оригинальный образ: Основан на Debian, не на оригинальном Astra Linux
- Пакеты: Некоторые специфичные пакеты Astra Linux могут отсутствовать
- Совместимость: 95% совместимость с оригинальным Astra Linux
Общие ограничения
- Размер образов: ARM64 образы могут быть больше AMD64
- Скорость сборки: Сборка ARM64 образов может занимать больше времени
- Кеш: ARM64 и AMD64 образы используют разные кеши
🔧 Устранение неполадок
Проблемы с архитектурой
# Проверить доступные платформы
docker buildx ls
# Пересоздать builder
make docker reset-builder
# Проверить поддержку ARM64
docker run --platform linux/arm64 --rm ubuntu:22.04 uname -m
Проблемы с совместимостью
# Проверить содержимое образа
docker run --rm inecs/ansible-lab:astra-linux-latest cat /etc/os-release
# Проверить установленные пакеты
docker run --rm inecs/ansible-lab:astra-linux-latest dpkg -l | grep python
📚 Дополнительная информация
🔗 Полезные ссылки
- Docker Multi-arch: https://docs.docker.com/buildx/working-with-buildx/
- Apple Silicon: https://docs.docker.com/desktop/mac/apple-silicon/
- AWS Graviton: https://aws.amazon.com/ec2/graviton/
- DevOpsLab: https://devops.org.ru