news
Управление шириной канала в настроенных серверах с VPN
БС
17 декабря 2022
Обновлено 21 декабря 2022

Как установить Jenkins на Kubernetes

Kubernetes Linux Ubuntu

Введение

Jenkins - это CI распространяемый с открытым исходным кодом написанный на Java, что позволяет следить за исправлениями разработчиков, а так же быть уверенным в безопасности. Этот сервер служит для непрерывной интеграции. В этой публикации мы установим этот CI используя кластеры kubernetes.

Kubernetes (K8S) - ПО для управления и ограничения контейнерных приложений - ускорение развертывания путем использования автоматизации, в условиях кластера так же можно координировать и масштабировать систему. Благодаря контейнеризации, можно с легкостью ограничить приложения друг от друга, а так же изменить выделенные ресурсы сервера с одного приложения на другое если такое потребуется.

В Serverspace есть возможность создать готовый кластер под Kubernetes, ведь это удобно! 

Требования

  • Не менее 2 CPU - реализации K8S сервера
    Или аренда K8S сервера
  • Клиент сервер, для управлением и настройкой кластеров K8S

Предустановка

Прежде, чем устанавливать Jenkins, необходимо развернуть Kubernetes. Чтобы сделать это в инфраструктуре Serverspace, просто авторизуйтесь в личном кабинете, затем перейдите в раздел Kubernetes и начните установку: 

kuber_set_up_bor

Настройте выделенный кластер по характеристикам которые вам требуются, не забудьте выдать ему имя.

P.s Для создания кластера потребуется около 15 минут, наберитесь терпения.

После создания кластера, у вас будет возможность скачать файл конфигурации сервера с кубернетесом. Этот конфиг потребуется позже при установке Jenkins, для связи клиент-сервера и сервера с кластерами kubernetes.

oymb8OrDiX

Скачайте файл конфигурации себе на компьютер, загрузите его на сервер выбрав одно из предложенных решений:

  • Вы можете создать новый файл и вписать в него конфиг кластера kubernetes.
nano config-kubernetes

Вставьте в созданный файл конфиг kubernetes, и сохраните его.

  • Удаленно загрузить конфиг благодаря протоколу SFTP.

Начало работы

Установите следующее по для нашего CI.

sudo apt-get update && sudo apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl

Укажите расположение файла конфигурации сервера k8s.

export KUBECONFIG=<Ваш путь до файла>

putty_ZJTgND2ZC3

P.s. Этот файл мы скопировали/создали после запуска кубернетес сервера.

Проверьте использование конфига.

kubectl cluster-info

F0X9zFserb

Создайте пространство для CI.

kubectl create namespace <your_namespace>

Для установки и запуска CI  на сервере k8s, требуется создать файл образа, с настройками нашего сервера.

nano our_project_jen.yaml

Введите в созданный файл конфигурации данные параметры.

apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins
spec:
replicas: 1
selector:
matchLabels:
app: jenkins
template:
metadata:
labels:
app: jenkins
spec:
containers:
- name: jenkins
image: jenkins/jenkins:lts
ports:
- name: http-port
containerPort: 8080
- name: jnlp-port
containerPort: 50000
volumeMounts:
- name: jenkins-vol
mountPath: /var/jenkins_vol
volumes:
- name: jenkins-vol
emptyDir: {}

Благодаря этой конфигурации, будет развернут CI последней версией вышедшая в релиз. Так же будут созданы и открыты порты что указаны в конфигурации, вы можете их сменить на нужные вам.

Теперь укажите созданному пространству, какой файл конфигурации использовать.

kubectl create -f jenkins.yaml --namespace <your_namespace>

Дождитесь установки образа и его запуска, воспользуйтесь командой ниже для проверки работы модуля.

kubectl get pods -n jenkins

После запуска образа, я создам еще две службы что бы использовать web версию CI.

Создаю конфиг для службы CI проекта.

nano jenkins-service.yaml

Добавьте в созданный файл эти настройки.

putty_4ACnBrCerF

Укажите кластеру использовать этот файл конфигурации с тем же созданным конфигом.

kubectl create -f jenkins-service.yaml --namespace <your_namespace>

Проверка статуса.

kubectl get services --namespace jenkins

Для просмотра ip адреса воспользуйтесь этой командой, либо можете посмотреть его в панели управления кластером K8S.

kubectl get nodes -o wide

Перед переходом к веб версии, проверьте пароль суперпользователя CI.

kubectl logs jenkins-CHANGE -n jenkins

Где "CHANGE " - наименование вашего контейнера.

putty_503qBKel8J

Пароль находится в логах нашего запущенного образа.

putty_psA3bB8u8Z

Переходите на веб версию Jenkins что бы продолжить его установку, введите в диалоговом окне пароль что мы узнали ранее.

firefox_5XDPSs98mb

Для полноценной установки Jenkins, следуйте инструкции которая предоставляется в web версии.

browser_BGmYzAyuz4

Вывод

В этой публикации я разобрал как развернуть Jenkins CI используя ресурсы выделенного kubernetes сервера от Serverspace.

Оценка:
4 из 5
Аverage rating : 4.7
Оценок: 5
191028 Санкт-Петербург Литейный пр., д. 26, Лит. А
+7 (812) 403-06-99
700 300
ООО «ИТГЛОБАЛКОМ ЛАБС»
700 300