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



01.12.2022

Wyższy poziom programowania

Progress oferuje nowe narzędzia programistyczne: Progress Telerik, Progress Kendo UI i...
01.12.2022

Łączność w podróży

VMware SD-WAN VMware zaprezentował rozwiązanie SD-WAN nowej generacji, w tym nowego...
01.12.2022

Bezpieczne e-maile

Nowa aplikacja firmy Cypherdog Security Inc. umożliwia bezpieczną wymianę maili i...
01.12.2022

Pierwszy w branży

Schneider Electric wprowadza na rynek APC Smart-UPS Ultra. To pierwszy w branży...
01.12.2022

Przełączniki 10G dla MŚP

Nowe urządzenia to przełączniki 10G kompatybilne z systemem Omada SDN.
01.12.2022

Zarządzanie danymi

Firma Synology wprowadziła na rynek czterokieszeniowy DiskStation DS923+.
01.12.2022

Nowatorski system chłodzenia

OVHcloud zaprezentował nową, autorską technologię hybrydowego zanurzeniowego chłodzenia...
01.12.2022

Linia smart routerów

D-Link zaprezentował najnowszą rodzinę routerów Smart Wi-Fi z algorytmami sztucznej...
04.11.2022

Nowa platforma Red Hat

Nowa platforma Red Hat Enterprise Linux (RHEL) w wersjach 8.7 i 9.1 Beta obsługuje...

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.

.

Transmisje online zapewnia: StreamOnline

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