Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.



07.04.2021

Lubelskie Dni Informatyki

Koło Naukowe Informatyków już po raz XIII zorganizuje Lubelskie Dni Informatyki.
07.04.2021

Bariery językowe przełamane

Cisco Webex
06.04.2021

Nowość w portfolio Bakotech

Progress Software
06.04.2021

Kontrola służbowych urządzeń

Hexnode MDM
02.04.2021

Red Hat Inc.

Firma Red Hat Inc. udostępniła Red Hat OpenShift 4.7 – najnowszą wersji czołowej...
02.04.2021

Rozpoznawanie twarzy

QNAP QVR
02.04.2021

Układy EPYC Serii 7003

Firma AMD zaprezentowała nowe wydajne procesory serwerowe, czyli układy EPYC Serii 7003,...
02.04.2021

Mobilna wydajność

Satellite Pro C50-G
01.04.2021

Nowa linia monitorów

AOC V4

Jenkins w Kubernetes

Data publikacji: 01-04-2021 Autor: Grzegorz Adamowicz

Ciągła integracja i ciągły deployment zagościły na stałe w świecie IT, a wraz z takimi narzędziami jak konteneryzacja i klastry obliczeniowe w rodzaju Kubernetes tylko zyskały na znaczeniu. Przez lata powstała niezliczona liczba aplikacji wspierających CI/CD, a jednym z najpopularniejszych jest Jenkins.

 

Projekt nie jest najnowszy i przez lata rozwoju starał się sprostać wymaganiom dzisiejszych procesów rozwoju i dostarczania oprogramowania. Jenkins jest aktywnie używany w wielu projektach i z powodzeniem spełnia swoje zadanie. System dodatków rozszerzających jego funkcjonalność oraz konteneryzacja pozwoliły na automatyczną instalację w klastrze Kubernetes.


Przy wdrażaniu oprogramowania na serwerze administrator najpierw instaluje system operacyjny, następnie wszelkie zależności potrzebne dla funkcjonowania docelowego serwisu, a na końcu następuje instalacja docelowego programu, w naszym przypadku będzie to rzecz jasna właśnie Jenkins. Później pozostaje nam dbanie o aktualizacje systemu operacyjnego i pozostałych komponentów.
Używając takich narzędzi jak Kubernetes, możemy przesunąć tę pracę na maszynę i skierować wysiłki zespołu na bardziej produktywne zadania. Automatyzacja jednak nie przychodzi sama i najpierw powinniśmy zapoznać się z kilkoma narzędziami, których użyjemy już po uruchomieniu klastra.


Narzędzia


Narzędziem, którego użyjemy do automatycznej instalacji Jenkinsa dla naszego klastra, będzie Helm (helm.sh) – jest to narzędzie automatyzujące instalację serwisów i wszelkich zależności, które możemy zdefiniować w tak zwanej mapie (helm chart).


Helm Chart to zestaw szablonów, które po przetworzeniu przez Helma tworzą pliki YAML opisujące obiekty do utworzenia przez Kubernetes (np. Serwis, Deployment). Dla nas istotne będą ustawienia, które będziemy musieli zmienić w celu uruchomienia Jenkinsa w naszym środowisku. Dodatkowo, prócz działającego klastra Kubernetes, będziemy potrzebowali narzędzia konsolowego kubectl. Narzędzie to pozwala na tworzenie i usuwanie obiektów w klastrze oraz monitorowanie zdarzeń wewnątrz. Do automatycznego konfigurowania Jenkinsa użyjemy wtyczki Jenkins Configuration as a Code (JCasC). Pozwoli nam ona na zdefiniowanie wszystkich ustawień za pomocą plików w formacie YAML.


Jenkins Chart


Możemy oczywiście sami napisać mapę serwisu Jenkinsa dla Helma, ale na szczęście twórcy Jenkinsa zadbali o ten aspekt i istnieje już gotowe rozwiązanie, którego użyjemy. Możemy zajrzeć do jego źródła w repozytorium na GitHub dostępnego pod adresem github.com/jenkinsci/helm-charts. Najważniejszym dla nas plikiem będzie values.yaml, w którym będziemy mogli skonfigurować wszystkie funkcje Jenkinsa, ustalić, jakie dodatki mają zostać zainstalowane, a także je również skonfigurować i wreszcie ustawić periodyczną akcję, która będzie wykonywała dla nas kopię zapasową instalacji Jenkinsa.
Najważniejsze elementy, które będą nam potrzebne, to obraz kontenera, adres instalacji naszego Jenkinsa (czyli ingress w Kubernetes) i bazowa konfiguracja przy użyciu wtyczki Jenkins Configuration as a Code. Z całą pewnością będziemy musieli skonfigurować:

 

 

  • adres, pod którym będzie dostępny Jenkins,
  • użytkownika i hasło administratora lub sposób autoryzacji użytkowników (np. Google OAuth),
  • obraz Jenkinsa, którego użyjemy (oficjalny lub taki, który przygotowaliśmy samodzielnie).

 

[...]

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

prenumerata Numer niedostępny Spis treści

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"