Еще одна интересная точка это Vagrant setup, особ. если ваша ОС хоста - Windows. Очевидные преимущества быть
- быстрой и безболезненной установки
- легко уничтожить/воссоздать машину
- неявное ограничение на ресурсы
- возможность проверить горизонтальное масштабирование путем создания нескольких узлов
недостатки - вам нужно много оперативной памяти, а VirtualBox - VirtualBox ... лучше или хуже.
Смешанное преимущество/недостаток - это сопоставление файлов через NFS. В нашей установке мы создали два набора определений RC - один, который просто загружает изображение докеры наших серверов приложений; другой с 7 дополнительными строками, которые настраивают сопоставление файлов из HostOS -> Vagrant -> VirtualBox -> CoreOS -> Kubernetes pod; переписывая исходный код с изображения Docker.
Недостатком этого является кеш-файл NFS - с ним это проблематично, без него это проблематично медленно. Даже установка mount_options: 'nolock,vers=3,udp,noac'
не избавляет от проблем с кешированием полностью, но работает большую часть времени. Некоторые задачи Gulp, выполняемые в контейнере, могут занимать 5 минут, когда они занимают 8 секунд в ОС хоста. Хорошим компромиссом является mount_options: 'nolock,vers=3,udp,ac,hard,noatime,nodiratime,acregmin=2,acdirmin=5,acregmax=15,acdirmax=15'
.
Что касается автоматической перезагрузки кода, это язык специфический, но мы довольны devserver Django для Python и Nodemon для Node.js. Для проектов с интерфейсом вы можете, конечно, многое сделать с помощью чего-то вроде gulp + browserSync + watch, но для многих разработчиков нетрудно обслуживать Apache и просто делать традиционное жесткое обновление.
Мы сохраняем 4 набора файлов yaml для Kubernetes. Dev, "devstable", stage, prod. Различия между те
- Env переменные явно настройки среды (DEV/этап/прод)
- количество реплик
- devstable, сцена, прод использует DOCKER изображения
- DEV использует DOCKER изображения, и отображает папку NFS с исходным кодом.
Это очень полезно, чтобы создать много Баша псевдонимов и автозаполнения - я могу просто набрать rec users
и он будет делать kubectl delete -f ... ; kubectl create -f ...
. Если я хочу, чтобы вся настройка началась, я печатаю recfo
, и она воссоздает дюжину услуг, вытягивая последние изображения докеров, импортируя последний db dump из Staging env и очищая старые файлы Docker, чтобы сэкономить место.
Взгляните на Openshift Origin. Это следующая версия Openshift и построена на вершине Кубернетеса. Выполняется автономно в контейнере Docker. –
@ MarkO'Connor Я больше искал развертывание в Google Cloud, но это больше решений для развертывания. Если у вас есть решение с OpenShift Origin, которое позволяет локальную разработку (в основном, перезагрузить последний локальный файл), пожалуйста, поделитесь им как ответом, мне было бы интересно. – Wernight
Вы нашли решение? У меня есть кубернеты, работающие поверх мезо в моем локальном кластере развития. Я планирую построить микросервисы в ходу, которые будут развернуты в контейнерах на кубернетах. Я хотел бы иметь возможность сохранять свои изменения и автоматически создавать двоичные файлы и перезапускать контейнеры. На самом деле не было изменений, чтобы проверить это, но я думаю, что создание в двоичном формате на vms, а затем перезапуск модуля может быть немного медленным. – F21