Рубрики
Uncategorized

Масштабируемые Дженкинс на кластере Kubernetes и трубопровод для автоматизированного CI CD (Jenkins — Github Integration)

Настройка масштабируемых Jenkins на Kubernetes может быть непростой нашими. Эта статья демонстрирует не только … Теги с DevOps, Kubernetes, Jenkins, CICD.

Настройка масштабируемых Jenkins на Kubernetes может быть непростой нашими. Эта статья демонстрирует не только как настроить масштабируемые Jenkins на Kubernetes, но и как интегрировать Jenkins в Github, чтобы всякий раз, когда любой запрос на тяга запрашивается на ветви, сборка автоматически запускается, а результаты будут доступны для администратора филиала для проверки, прежде чем объединить Потянуть запрос.

Сначала сначала получите масштабируемые Jenkins UP перед настройкой трубопровода для автоматического CI CD.

Прежде чем мы пройдем по ступенькам, вот краткий на главном и рабском узле Docker Images

Jenkins Master Node

Jenkins Master использует изображение Brainupgrade/Дженкинс: 2.274JDK11X.

Это изображение имеет много плагинов, необходимых для плавного CD на Kubernetes. Чтобы узнать содержимое изображения, DockerFile (./Master/DockerFile) сохраняется здесь. Следующие плагины предоставляются как часть этого изображения, чтобы сэкономить время:

  • SSH-рабы
  • Email-Ext.
  • посылка
  • расслабиться
  • HTMLPUBLILHER
  • резетя
  • простая тема-плагин
  • Кубернеты
  • Рабочий процесс-агрегатор
  • синий океан
  • сонар
  • Maven-Plugin

Дженкинс Рабовый узел

Дженкинс Раб использует изображение Brainupgrade/JNLP-раб: 1.0.0

Это изображение основано на OpenJDK11, содержащем Maven, Docker Runtime, так что проект Spring Boot может быть вычете, Maven построен в том числе здание докера и развертывание.

Шаги — масштабируемые дженкинс на кластере Kubernetes

Ниже приводится пошаговое руководство, чтобы это произошло.

Запустите Jenkins Master

Бежать ниже конфигураций Kubernetes

kubectl create ns jenkins
kubectl apply -f rbac.yaml
kubectl apply -f deploy.yaml
kubectl apply -f service.yaml

Закрепить мастер

Как только Jenkins Master Server развернут, это займет несколько минут, чтобы получить UI UIP и запустить до Access UI, бегать ниже

kubectl port-forward deploy/jenkins 8080:8080

и запустить URL http://localhost: 8080 на браузере

Перейти к http://localhost: 8080/configuresecurity/ и закрепите сервер, включив безопасность, как показано на рисунке ниже.

Как только вы сохраните его, вы получите возможность установить имя пользователя и пароль.

После входа в систему снова вернитесь к этому URL и выберите Tick Mark к Agent — Безопасность контроллера. Эта опция становится видимой после настройки имени пользователя и пароля.

Настройте плагин Kubernetes, как показано на снимках ниже

Теперь перейдите к URL: http://localhost: 8080/configureclouds и ключ в конфигурации, как показано на снимках ниже.

Настройка глобальных учетных данных

Чтобы проверить команды Docker, особенно войти, сначала установите глобальные учетные данные, как показано ниже

Создать работу постройки

Создайте задание Docker-Test в качестве трубопровода, нажмите OK и вставьте текст ниже в блоке трубопровода

pipeline {
    agent {
        kubernetes{
            label 'jenkins-slave'
        }
    }
    environment{
        DOCKER_USERNAME = 'brainupgrade'
        DOCKER_PASSWORD = credentials('docker-brainupgrade')
    }
    stages {
        stage('docker login') {
            steps{
                sh(script: """
                    docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD
                """, returnStdout: true) 
            }
        }
    }
}

Нажмите Сохранить

Проверить трубопровод

Запустите рабочую силу Docker-Test, и вы увидите, что POD будет запущен Master Jenkins Master для запуска задания по сборке Docker-Test, и POD будет прекращена немедленно.

После завершения работы строить, затем построить POD прекращается

Шаги — Дженкинс Трубопровод для автоматического CI CD

Чтобы проиллюстрировать, автоматизированный CI CD, у меня установлена пример проекта GitHub Погодатенная служба Также создал филиал имени Дженкинс И всякий раз, когда предоставляются какие-либо вклады в этот филиал через запрос на тягу, администратор филиала/проекта может просматривать запрос на тягу, просмотреть состояние сборки и теста, прежде чем объединиться в jenkins. ветвь

Дженкинс Работа

On Jenkins, настройте работу по сборке, именуемую по имени погода и в типе трубопроводы, нажмите OK, а затем прокрутите вниз, чтобы вставить содержимое этого файла трубопровода в сечение трубопровода.

Установите плагин

Кроме того, установите ниже плагин

  • GitHub Pull запрос строитель

Настройка GitHub

Теперь генерируйте токен доступа, используя https://github.com/settings/tokens/new (Выберите REPO: Состояние)

Создайте веб -ook, используя настройки REPO GitHUB

  1. Вставьте https:///ghprbhook/
  2. Event Trigger — выберите отдельные события (потягивание запросов, комментарии выпуска) Так что всякий раз, когда любой запрос на тяга создан, Github может уведомить ваши URL Jenkins URL

Установка Дженкинса

Создание учетных данных jenkings (тип: секретный текст), используя выше токен доступа, скажем, github-bu-токен

Настройте сервер GitHub здесь http://localhost:8080/configure

Прокрутите вниз и настройте GitHub Pull Cured Cureder и выберите правильные учетные данные

Создайте новую работу, скажите Weather-Service, выберите Трубопровод и нажмите ОК

Выберите GitHub Pull Request Builder, см. Ниже снимок

Нажмите на Advanced и вставьте целевую ветку Whitelist, говорите Jenkins. Вы также должны выбрать Создайте каждый запрос на тягу автоматически, не спрашивая Чтобы убедиться, что каждый запрос на тягу достаточно хорош с точки зрения качества сборки и проверки перед объединением

Проверьте настройку

Теперь вы можете поднять запрос на вылете на выбранную ветку (Jenkins в моем случае), и вы заметите, что сборка запускается автоматически, и его результаты будут отображаться на странице запроса на вытягивание, чтобы филиал администратора мог просмотреть результат и решить слияние

Создание статуса

Чтобы показать статус сборки на главной странице GitHub, установите плагин

 and goto your build job and click  on this plugin  link to generate URL that would look similar to the below




[![Build Status](https://cicd.brainupgrade.in/buildStatus/icon?job=weather-service)](https://cicd.brainupgrade.in/job/weather-service/)


## Kubernetes Cluster Info
Below is the info on the tool used to setup Kubernetes cluster and its version

- Kubernetes Server 1.19.7
- Cluster Management Tool - kops
- Cloud Provider AWS

## Conclusion
This article demonstrated How to setup Jenkins Pipeline to achieve automated CI CD including Github and Jenkins integration.  The moment Git Pull request is raised on a particular branch, build is triggered and results are made avaialble to the branch admin to review before merging the pull request.

# About The Author

The author, [Rajesh G](https://www.linkedin.com/in/rajesh-g-b48495/), is The Chief Architect @ Brain Upgrade Academy where he has designed the IoT-based Fleet Management Platform that runs on a Kubernetes Cluster on AWS Amazon.  He is also a certified Kubernetes Administrator and TOGAF certified Enterprise Architect.
Rajesh led various digital transformation initiatives for Fortune 500 Fin Tech companies. Over the last 20+ years, he has been part of many successful technology startups.

# About Brain Upgrade Academy

We, at Brain Upgrade, offer Kubernetes Consulting services to our clients including Up Skilling (training) of clients teams thus facilitate efficient utilization of Kubernetes Platform.  To know more on the Kubernetes please visit [www.brainupgrade.in/blog](www.brainupgrade.in/blog) and register on [www.brainupgrade.in/enroll](www.brainupgrade.in/enroll) to equip yourself with Kubernetes skills.

# Why Brain Upgrade

We at Brain Upgrade, partner with our customers in the digital transformation of their businesses by providing: 

Technology Consulting in product development, IoT, DevOps, Cloud, Containerization, Big Data Analysis with a heavy focus on Open source technologies. 
Training the IT workforce on the latest cloud technologies such as Kubernetes, Docker, AI, ML, etc. 

You may want to register for the upcoming trainings on [https://brainupgrade.in/enroll](https://brainupgrade.in/enroll)

Оригинал: «https://dev.to/rajeshgheware/scalable-jenkins-on-kubernetes-cluster-pipeline-for-automated-ci-cd-jenkins-github-integration-3a33»