Рубрики
Без рубрики

Начало работы с местным развитием на Куберане с Skafsold

Первая часть учебника по созданию и запуску приложений Django, поддерживаемого Postgres на местных Куберане. Теги с Python, Kubernetes, учебником.

Контейнеризация была революцией в разработке программного обеспечения. Технологии, такие как 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”