www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

GitLab Auto DevOps на кластере DigitalOcean Kubernetes

Дата публикации Oct 3, 2019

Подготовьте кластер Kubernetes, управляемый DigitalOcean, и разверните приложение NodeJs в производстве, используя GitLab Auto DevOps с мониторингом Prometheus, за меньшее время, чем требуется, чтобы дойти до ближайшей пекарни.

Перед твоим началом

Вам необходимо:

Имейте в виду, что следующие команды настроятDigitalOcean-управляемый кластерс 2 узлами (1vCPU, 2GB) и некоторыми дополнительными ресурсами, такими какБалансировщик нагрузки, который будет выставлен на счет DigitalOcean.Проверьте цены,

Начиная

Kubernetes

Клонировать хранилищеhttps://github.com/ehemmerlin/gitlab-dok8s(который основан наhttps://github.com/snormore/doks-examples):

git clone [email protected]:ehemmerlin/gitlab-dok8s
cd gitlab-dok8s

Запустите контейнер Docker golang, набрав:

docker run -it -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.13 bash

Внутри док-контейнера запуститенастроитьСкрипт: он установит jq, kubectl и doctl внутри контейнера Docker, а затем запросит ваш ключ доступа для входа в DigitalOcean.

script/setup

Введите свой токен доступа DigitalOcean.

Примечание: вы также можете установить токен, заменив «your_DO_token» на ваш токен доступа DigitalOcean в следующей команде перед запускомнастроитьскрипт.

docker run -it --env=DIGITALOCEAN_ACCESS_TOKEN="your_DO_token" -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.13 bash

Внутри док-контейнера запуститевверхскрипт: он создаст управляемый DigitalOcean кластер Kubernetes с именем по умолчаниюgitlab-demoоснованный наДобавление существующего кластера Kubernetes в Gitlabчтобы получить URL API, сертификат CA и сервисный токен, используемые для интеграции этого кластера Kubernetes с GitLab.

script/up

Вы можете указать имя кластера с помощью:

script/up my-cluster-name

Примечание. Если позже вам понадобится URL-адрес API, сертификат CA или служебный токен, снова запустите этот сценарий с тем же именем кластера.

GitLab

Настройка группового кластера Kubernetes

Создайте новую группу в gitlab.com:https://gitlab.com/groups/new

Дайте группе имя и нажмите наСоздать группу,

На панели меню в левой части страницы группы выберитеKubernetesи нажмите наДобавить кластер Kubernetes,

ВыбратьДобавить существующий кластери дайте кластеру имя, затем заполните поля, которые вы получили на предыдущем шаге (см. часть Kubernetes выше):URL API,Сертификат CAа такжеСервисный токен,

Включить обаКластер с поддержкой RBACа такжеGitLab-управляемый кластер(если попросить оставитьПространство имен проектапустой префикс) и нажмите наДобавить кластер Kubernetes,

Установить Тиллер, Ингресс и Прометей

Как только вы добавите кластер в GitLab, появится список приложений для установки в кластер. Первый из нихХелм Тиллер, Идите вперед и нажмите наустанавливатьдобавить его в кластер.

Второй для установкивход, Это обеспечит балансировщик нагрузки DigitalOcean. После установки скопируйте значениеКонечная точка входачто появляется, то установитеПрометейэто третье приложение, которое нам нужно.

После того, как эти три приложения установлены, прокрутите до верхней части страницы и найдитеБазовый доменполе. Введите значениеКонечная точка входаВы скопировали, затем .nip.io и нажмите наСохранить изменения,

Каждый проект, который вы добавите в эту группу, теперь может быть развернут в вашем кластере Kubernetes, если вы включите Auto DevOps для этого проекта. Итак, давайте попробуем!

Настройте проект GitLab

Создайте новый проект в gitlab.com:https://gitlab.com/projects/new

На странице «Новый проект» выберитеСоздать из шаблонаВкладка. Это предоставит вам список шаблонов проектов для использования. ВыбратьNodeJS Express(который включает в себя CI / CD с функцией Auto DevOps), нажав наИспользовать шаблон, Дайте проекту имя и убедитесь, что вы выбралиURL проектагруппы, которую вы создали. щелчокСоздать проекткогда вы закончите.

Далее на панели навигации выберитеНастройки> CI / CD, РазвернитеАвто DevOpsраздел и проверьтеПо умолчанию используется конвейер Auto DevOpsкоробка. ОставьСтратегия развертыванияустановлен вНепрерывное развертывание в производство,

Новый конвейер создан, и задание запускается. На панели навигации выберитеCI / CD> Трубопроводычтобы увидеть этот трубопровод.

После завершения конвейера на панели навигации выберитеОперации> Среды,

Следующий напроизводствос правой стороны щелкните первый значок (Открыть живую среду), чтобы открыть только что развернутое приложение NodeJS Express.

Затем нажмите на значок рядом с (Мониторинг), чтобы контролировать кластер Kubernetes с помощью Prometheus.

Поздравляем! Вы только что соединили Auto DevOps GitLab с управляемым DigitalOcean кластером Kubernetes, отслеживаемым Prometheus.

Убираться

GitLab

На панели навигации созданной вами группы выберитеОперации> Кубернетеси выберите название вашего кластера Удалитьвходудалить созданный DigitalOcean Load Balancer. На этом этапе может потребоваться некоторое время, поэтому возьмите чашку чая и обновите страницу, если это необходимо.

Затем прокрутите страницу до конца и развернитеРасширенные настройки, ПодУдалить кластер Kubernetes интеграциищелчокУдалить интеграцию, Подтвердите, нажав Ok.

При желании удалите созданную вами группу (это также приведет к удалению проекта): на панели навигации созданной вами группы выберитеНастройки> Общие, прокрутите до конца страницы и развернитеПуть, передача, удалениезатем выберитеУдалить группуи подтвердите его название перед нажатиемПодтверждение,

Kubernetes

Внутри контейнера Docker, который вы начали в начале, запуститевнизскрипт: удаляет кластер:

script/down

Вы можете указать имя кластера, набрав (будьте осторожны, если вы использовали свой собственный кластер Kubernetes под управлением DigitalOcean на первом шаге, потому что следующая команда удалит его!):

script/down my-cluster-name

Примечание: если по какой-либо причине вы вышли из контейнера Docker преждевременно, перейдите кНачало работы - Кубернетесраздел выше, чтобы запустить его снова. Вам нужно будет снова ввести свой токен доступа DigitalOcean.

Все предоставленные ресурсы были удалены.

Чтобы выйти из контейнера golang Docker, введите:

exit

Теперь все было убрано.

Поиск проблемы

Чтобы управлять этим кластером Kubernetes с помощью kubectl, выполните следующую команду в контейнере Docker (если вы вышли из него, перейдите вНачало работы - Кубернетесраздел выше, чтобы запустить его снова):

export KUBECONFIG="tmp/<your-cluster-name>-kubeconfig.yaml"

Примечание: по умолчанию имя кластера: gitlab-demo

Теперь вы можете запустить все необходимые команды kubectl:

kubectl get pods --all-namespaces
kubectl config set-context --current --namespace=gitlab-managed-apps
kubectl logs pod tiller-deploy-xxxx-yyyy # depending on the name of the tiller deploy pod

Ссылки

кредиты

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map