- развернем кластер
- запустим панель управления
- развернем s3 хранилище с балансировщиком
- Само собой, имеем уже настроенный Proxmox VE
- На локальной машине ставим docker-machine (
brew install docker-machine
- если у вас MacOS) - Просаживаем плагин для работы с Proxmox:
- качаем от сюда
- даем права на запуск -
chmod +x docker-machine-driver-proxmoxve.macos-amd64
- перемещаем рабочую папку -
mv docker-machine-driver-proxmoxve.macos-amd64 /usr/local/bin/docker-machine-driver-proxmoxve
- проверяем, что работает плагин
docker-machine create -d proxmoxve --help
(должен появится листинг параметров плагина)
- качаем образ докера и заливаем его себе в Proxmox
- переименовываем
.env.example
в.env
и заполняем логопасс от доступа в ваш Proxmox - запускаем
swarm-init.sh
- он пробуем цепляться в Proxmox и создает 4 машины (одну мастера и 3 воркера - формально, пока просто 4 пустых машины) - идем на мастер
docker-machine ssh docker-master
и запускаем там:docker swarm init
- создает мастера и инициализирует ройdocker swarm join-token worker
- показывает токен, копируем всю строчку в буферexit
- выходим
- далее, цепляемся к каждому воркеру
docker-machine ssh docker-1
и выполняем команду из буфера - после инициализации воркеров и идем снова на мастер
docker-machine ssh docker-master
и проверяем что воркеры подцепилисьdocker node ls
- на мастере запускаем установку стека
wget https://downloads.portainer.io/portainer-agent-stack.yml --output-document portainer-agent-stack.yml
docker stack deploy --compose-file=portainer-agent-stack.yml portainer
- на мастере подсматриваем айпишник
ifconfig eth0
и идем на веб-морду http://ip:9000
- на мастере
- создаем секреты (само собой - свои, а не из примера)
echo "AKIAIOSFODNN7EXAMPLE" | docker secret create access_key -
echo "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" | docker secret create secret_key -
- проставляем метки на воркеры
docker node update --label-add minio1=true docker-master
docker node update --label-add minio2=true docker-2
docker node update --label-add minio3=true docker-3
docker node update --label-add minio4=true docker-1
- импортируем
- в конфиги файлик
lb.conf
и называем его там так жеlb.conf
- запускает новый стек используя код из файла
docker-compose-minio.yaml
и называем стекminio
- стек поднимет 4 независимые реплики minio со своими дисками на каждой их четырех нод и одну реплику nginx на мастер-ноде, выставит ингресс-линк на порте
8080
- доменное имя для minio выглядит как
minio.local
(можно поменять в lb.conf перед его импортом), не забудьте прописать его у себя в /etc/hosts на айпишники нод (или хотя бы мастер-ноды)
- создаем секреты (само собой - свои, а не из примера)
./swarm-rm.sh