Files
DevOpsLab/docs/arm64-support.md
Сергей Антропов c66bb35f97 feat: Добавлена поддержка ARM64 для Astra Linux и обновлена документация
- Создан совместимый образ 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
2025-10-27 14:16:29 +03:00

7.9 KiB
Raw Blame History

Поддержка 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

  1. Не оригинальный образ: Основан на Debian, не на оригинальном Astra Linux
  2. Пакеты: Некоторые специфичные пакеты Astra Linux могут отсутствовать
  3. Совместимость: 95% совместимость с оригинальным Astra Linux

Общие ограничения

  1. Размер образов: ARM64 образы могут быть больше AMD64
  2. Скорость сборки: Сборка ARM64 образов может занимать больше времени
  3. Кеш: 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

📚 Дополнительная информация

🔗 Полезные ссылки