Контейнеризация была революцией в разработке программного обеспечения. Технологии, такие как Docker, позволяют разработчикам упаковать их программное обеспечение, и все его зависимости в контейнерах, проводимых в любых вычислительных средах, будь то вашим местным рабочим столом, общедоступным облаком или центром вашей компании. Это имеет резко ускоренное развертывание программного обеспечения.
Контейнеры часто развернуты в платформах для оркестрации контейнера, такие как Кубернаны Отказ Однако, когда локально разработка услуг, я использовал такие инструменты, как Docker Compose Для запуска нескольких связанных контейнеров с одной командой. Это здорово, но он чувствует немного 2010 года: У моего сервиса есть собственные манифест Kubernetes, описывающие, как следует развернуть услугу, так почему я не могу использовать это для местного развития?
Введите Скаффорт , инструмент командной строки для непрерывного развития на Кубейнетах. Инструмент был открытый Google в 2018 году. Skafsold наблюдает за вашим кодом и обнаруживает изменения, он обрабатывает здание, нажатие и развертывание приложения к вашей локальной установке Kubernetes. Вы даже можете использовать Skapsold для создания вашего CI/CD-трубопровода, обрабатывая развертывание полностью от локальной рабочей станции к производственному кластеру.
В этой серии статей мы узнаем, как разработать веб-приложение Kubernetes-Native. Мы будем использовать Джанго Чтобы создать наше веб-приложение, подключите его к Postgres База данных, и напишите Кубернаны, проявляются к постоянному развитию приложения на локальный мини-кластер Minikube. Мы узнаем концепции Kubernetes, такие как Развертывание , Услуги , Configmaps. , Секреты , Постоянные тома и Рабочие места .
В этой первой части этой серии мы устанавливаем все требования. После того, как вы завершили первую часть, вы можете клонировать Сопровождающий репозиторий и бежать
$ skaffold dev
В корне репозитория для развертывания приложения к вашему локальному кластеру Minikube. В следующей части серии мы построим пошаговой репозиторий.
Предварительные условия
kubectl
Во-первых, нам понадобится kubectl
Взаимодействовать с нашими кластером Kubernetes. Точные данные будут варьироваться в зависимости от вашей платформы, поэтому следуйте инструкциям здесь Чтобы установить kubectl
на вашей собственной машине.
На Macos , kubectl
Может быть установлен следующим образом:
Мои команды:
$ cd ~/bin $ curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl" $ chmod +x kubectl
Вот я скачиваю kubectl
исполняемый в Bin/
Папка в моем домашнем каталоге. Я добавил эту папку на мой $ Путь
с Экспорт путь = $ PATH: ~/BIN
В моем ~/.bash_profile
Итак, я могу выполнить двоичную в любом месте с kubectl
команда. Вы можете поставить двоичную в любом месте вашего $ Путь
скажем, в /usr/local/bin/kubectl
Отказ
После установки убедитесь, что он работает:
$ kubectl version --client
Minikube
Обратите внимание, что Docker Desktop включает в себя автономные серверы Kubernetes. Если вы хотите использовать это вместо Minikube, вы можете: увидеть инструкции здесь Как использовать Docker Desktop с Skapsold.
Следующий шаг – Установите Minikube Отказ Опять же, точные детали варьируются на платформе. Во-первых, вам может понадобиться Установите гипервизор . У меня было гиперкит
Установлен на моей машине уже Docker Desktop , который я подтвердил бегом
$ hyperkit -h
Кроме того, вы можете установить VirtualBox Отказ
После установки HyperVisor установлен, вы можете установить Миникуба
в качестве автономной исполняемости следующим образом:
$ cd ~/bin $ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64 \ $ chmod +x minikube
После этого вы можете смело попробовать и начать свой местный кластер Minikube с:
$ minikube start
Обратите внимание, что в течение первого запуска этой команды требуется загрузка больших дисков изображений, поэтому будьте терпеливы. Если все идет хорошо, начинается кластер, и вы можете ввести следующую команду для доступа к приборной панели Kubernetes:
$ minikube dashboard
Если что-то пойдет не так, вы можете попробовать и явно указать драйвер как поручено здесь Отказ
Скаффорт
Далее нам нужно Установить Skapsold Отказ Для MacOS я установил автономный двоич с:
$ cd ~/bin $ curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/latest/skaffold-darwin-amd64 $ chmod +x skaffold
Чтобы проверить вашу установку, запустите:
$ skaffold
Django-admin.
Если вы хотите следить за созданием хранилища, вам понадобится Django-admin
Для загрузки приложения Django. Обратите внимание, что этот шаг не является обязательным: нам нужно только установить Django, чтобы создать проект BoaterPlate. Если вы не хотите устанавливать Python 3 и Django на собственную машину, не стесняйтесь скопировать код из сопровождающий репозиторий Отказ
Установка Django требует, прежде всего, рабочая установка Python 3 Так что убедитесь, что у вас есть это доступно.
Наш проект Django будет жить в SRC/Store
Так что создайте эту складку и CD
внутрь:
$ mkdir -p src/store $ cd src/store
Создать требования .txt
и включить Джанго
:
# src/store/requirements.txt django
Теперь активируйте свой Виртуальная среда и установить django:
$ pip install -r requirements.txt
Теперь вы должны быть в состоянии найти Django-admin
В вашем ДОРОЖКА
. Мы будем использовать это, чтобы загрузить проект в следующей части.
Заключение
Это завершает первую часть! Если вы следите за этим далеко, вы можете попробовать и запустить
$ skaffold dev
В сопроводительном репозитории для развертывания приложения к вашим локальным кластере Kubernetes. В следующей части серии мы построим приложение и добраться до забавных материалов: написание Kubernetes проявляется. Тогда увидимся!
Оригинал: “https://dev.to/ksaaskil/getting-started-with-local-development-on-kubernetes-with-skaffold-1plc”