Database
 sql >> Baza danych >  >> RDS >> Database

Używanie Jenkinsa z Kubernetes AWS, część 1

CoreOS to system operacyjny zaprojektowany dla kontenerów Docker. CoreOS ma wstępnie zainstalowany Docker po wyjęciu z pudełka. Kubernetes można zainstalować na CoreOS przy użyciu CloudFormation, jak omówiono szczegółowo we wcześniejszym artykule „Pierwsze kroki z Kubernetes w Amazon Web Services (AWS)”.

Problem

Kubernetes nie jest wstępnie zainstalowany na CoreOS i można go zainstalować za pomocą kube-aws narzędzie i wymaga pewnych danych wejściowych użytkownika i konfiguracji. Instalacja Kubernetes na CoreOS to skomplikowany proces i składa się z następujących etapów pokazanych na rysunku 1.


Rysunek 1: Instalacja Kubernetes na CoreOS Stages

Rozwiązanie

Jenkins Pipeline może zostać użyty do zautomatyzowania instalacji Kubernetes, jak pokazano na rysunku 2. Różne etapy instalacji można skonfigurować w pliku Jenkins a po uruchomieniu potoku kube-aws narzędzie zostanie pobrane, CloudFormation stos zostaje zainicjowany, zawartość Katalogu zasobów jest renderowana, parametry klastra, takie jak liczba instancji roboczych, są dostosowywane, a następnie klaster jest sprawdzany i uruchamiany.


Rysunek 2: Jenkins Pipeline do instalacji Kubernetes na CoreOS

Instalacja Kubernetes przy użyciu potoku Jenkins jest przykładem Automatyzacji Wzorzec projektowy DevOps.

W trzyartykułowym samouczku zautomatyzujemy proces instalacji Kubernetes za pomocą Jenkins Pipeline. Ten artykuł ma następujące sekcje:

  • Ustawianie środowiska
  • Tworzenie wstępnych artefaktów
  • Tworzenie węzła Jenkinsa
  • Wniosek

Ustawianie środowiska

Zainstalujemy Jenkinsa za pomocą obrazu Docker „jenkins” na instancji CoreOS. Uruchomimy klaster Kubernetes na instancji Amazon AMI Linux EC2 z wykorzystaniem Jenkins Pipeline. Najpierw uruchom dwie instancje EC2, jedną z systemem Amazon Linux, a drugą z systemem CoreOS, jak pokazano na rysunku 3.


Rysunek 3: Uzyskiwanie publicznego adresu IP

Tworząc instancję Amazon Linux, utwórz nową parę kluczy (na przykład „jenkins”), wybierając „Utwórz nową parę kluczy” i pobierz klucz prywatny „jenkins.pem”, który będzie używany do konfiguracji agenta Jenkins. Uzyskaj publiczny adres IP instancji EC2 z systemem CoreOS i SSH zaloguj się do instancji.

ssh -i "jenkins.pem"  [email protected]

Uruchom obraz Docker dla Jenkinsa, aby uruchomić Jenkinsa.

docker run -name jenkins -p 8080:8080 -p 50000:50000 jenkins

Obraz Dockera „Jenkins” zostaje pobrany. Jenkins zaczyna. Skopiuj wygenerowane hasło. Uzyskaj publiczny DNS instancji EC2 z systemem Jenkins. Korzystanie z adresu URL :8080 , zaloguj się do pulpitu nawigacyjnego Jenkins, jak pokazano na rysunku 4.


Rysunek 4: Konsola administracyjna Jenkins

Tworzenie wstępnych artefaktów

Teraz musimy utworzyć kilka artefaktów dla klastra Kubernetes, które nie podlegają automatyzacji.

  • Para kluczy EC2
  • Klucz KMS
  • Katalog Jenkinsa /var/jenkins
  • Logowanie SSH do instancji Amazon EC2 z systemem Amazon Linux
ssh -i "jenkins.pem"  [email protected]

Ponieważ używany jest Amazon EC2, wymagane jest konto AWS. Musimy stworzyć zestaw poświadczeń AWS Security, których użyjemy do skonfigurowania instancji EC2, z której uruchamiany jest stos CloudFormation. Aby utworzyć nowe poświadczenia zabezpieczeń AWS, kliknij Poświadczenia zabezpieczeń dla konta użytkownika i kliknij Utwórz nowy klucz dostępu aby utworzyć klucz dostępu. Skopiuj Identyfikator klucza dostępu i klucz dostępu. W instancji Amazon Linux uruchom następujące polecenie, aby skonfigurować instancję przy użyciu poświadczeń AWS:

aws configure

Po wyświetleniu monitu określ identyfikator klucza dostępu i klucz dostępu. Określ domyślną nazwę regionu (us-east-1 ) i format wyjściowy (json ), jak pokazano na rysunku 5.


Rysunek 5: Konfigurowanie instancji Jenkins z poświadczeniami AWS, regionem i domyślnym formatem wyjściowym

Następnie utwórz parę kluczy EC2. Uruchom następujące polecenie, aby utworzyć parę kluczy o nazwie kubernetes-coreos i zapisz go jako kubernetes-coreos.pem .

aws ec2 create-key-pair
   --key-name kubernetes-coreos
   --query 'KeyMaterial'
   --output text > kubernetes-coreos.pem

Zmodyfikuj uprawnienia dostępu pary kluczy, używając trybu 400, który ustawia uprawnienia dostępu do odczytu przez właściciela.

chmod 400 kubernetes-coreos.pem

Zostanie utworzona para kluczy i zostaną ustawione uprawnienia dostępu (patrz Rysunek 6).


Rysunek 6: Tworzenie pary kluczy dla Kubernetes

Para kluczy jest również wyświetlana w konsoli AWS EC2, jak pokazano na rysunku 7.


Rysunek 7: Uzyskiwanie publicznego adresu IP

Następnie utwórz klucz KMS, który jest używany do szyfrowania/odszyfrowywania zasobów TLS klastra i jest identyfikowany przez ciąg Arn. Użyj aws interfejs wiersza poleceń do tworzenia klucza KMS dla regionu us-east-1 .

aws kms
   --region=us-east-1 create-key
   --description="kube-aws assets"

Zostanie utworzony klucz KMS, jak pokazano na rysunku 8. Skopiuj KeyMetadata.Arn ciąg rozpoczynający się od arn:aws:kms:us-east-1 do wykorzystania później do zainicjowania klastra CloudFormation.


Rysunek 8: Tworzenie klucza KMS

Musimy również stworzyć katalog dla Jenkinsa:

sudo mkdir /var/Jenkins
sudo chmod 777 /var/jenkins

Zostanie utworzony katalog i zostaną ustawione uprawnienia, jak pokazano na rysunku 9.


Rysunek 9: Tworzenie katalogu dla Jenkinsa

Tworzenie węzła Jenkins

Jenkins Pipeline to projekt Jenkins korzystający z wtyczki Jenkins Pipeline. Potok zazwyczaj składa się z sekwencji kroków, z których każdy wykonuje zadanie. Dostępne executory na agentach są używane do uruchamiania projektu Jenkins. „Agent” to maszyna skonfigurowana do odciążania projektów z węzła głównego. Węzeł „główny” to maszyna, na której jest zainstalowany Jenkins i obsługuje wszystkie zadania systemu kompilacji, w tym parsowanie skryptów Pipeline i uruchamianie projektu Jenkins na executorze. „Executor” to zasób obliczeniowy do kompilacji kodu, który można skonfigurować na węzłach głównych lub agentach. W tej sekcji stworzymy węzeł agenta i skonfigurujemy executor na węźle. Wybierz Zarządzaj Jenkinsem w panelu Jenkins, jak pokazano na rysunku 10.


Rysunek 10: Uzyskiwanie publicznego adresu IP

Następnie wybierz Zarządzaj węzłami , jak pokazano na rysunku 11.


Rysunek 11: Uzyskiwanie publicznego adresu IP

Węzeł „główny” powinien zostać wyświetlony. Kliknij Nowy węzeł aby utworzyć węzeł agenta, jak pokazano na rysunku 12.


Rysunek 12: Uzyskiwanie publicznego adresu IP

Określ nazwę węzła (Jenkins na przykład) i wybierz Stały agent przycisk radiowy, jak pokazano na rysunku 13. Kliknij OK.


Rysunek 13: Uzyskiwanie publicznego adresu IP

Aby skonfigurować nowy węzeł agenta, będziemy potrzebować DNS hosta, na którym ma zostać utworzony agent. Skopiuj publiczny DNS z konsoli AWS EC2 dla instancji EC2 z uruchomionym obrazem Amazon Linux, jak pokazano na rysunku 14.


Rysunek 14: Uzyskiwanie publicznego adresu IP

W nowym interfejsie użytkownika do wprowadzania danych agenta podaj Nazwę (Jenkins , na przykład). Określ liczbę wykonawców jako 1. Określ Zdalny katalog główny jako /var/jenkins , który powstał wcześniej. Określ Etykiety jako „jenkins”, których znaczenie omówimy w dalszej części. W Użyciu , zachowaj domyślne ustawienie „Używaj tego węzła tak często, jak to możliwe”. W metodzie uruchamiania , wybierz „Uruchom agenty podrzędne na komputerach z systemem Unix przez SSH”. W hoście , określ publiczny DNS skopiowany z konsoli EC2. W Dostępności , wybierz „Utrzymuj tego agenta w trybie online tak często, jak to możliwe”. W przypadku Poświadczeń , kliknij Dodaj i wybierz Dostawca danych uwierzytelniających Jenkins , jak pokazano na rysunku 15.


Rysunek 15: Uzyskiwanie publicznego adresu IP

W Dodaj poświadczenia w oknie dialogowym wybierz Domena jako Globalne dane logowania i Miły jako Globalny . Określ Nazwę użytkownika jako „użytkownik ec2” i wybierz Wprowadź bezpośrednio . Skopiuj i wklej zawartość pliku klucza prywatnego jenkins.pem w Kluczu jak pokazano na rysunku 16.


Rysunek 16: Dodawanie poświadczeń Jenkinsa

Kliknij Dodaj , jak pokazano na rysunku 17.


Rysunek 17: Dostawca poświadczeń Jenkins>Dodaj

Wybierz użytkownika ec2- poświadczenie w Poświadczeniach , jak pokazano na rysunku 18. Kliknij Zapisz .


Rysunek 18: Konfiguracja węzła Jenkinsa

Zostanie dodany nowy agent, jak pokazano na rysunku 19. Początkowo agent może być niedostępny, ponieważ wciąż się rozpoczyna.


Rysunek 19: Utworzono agenta Jenkinsa

Kliknij link agenta i kliknij Uruchom ponownie agenta , w razie potrzeby, jak pokazano na rysunku 20.


Rysunek 20: Ponowne uruchomienie agenta

Komunikat wyjściowy „Agent pomyślnie połączony i online” wskazuje, że agent został uruchomiony (patrz Rysunek 21).


Rysunek 21: Agent pomyślnie połączony i online

Agent „jenkins” powinien zostać wyświetlony jako uruchomiony, jak pokazano na rysunku 22.


Rysunek 22: Agent Jenkinsa działa

Wniosek

W tym artykule przedstawiliśmy znaczenie automatyzacji instalacji Kubernetes za pomocą Jenkins. Zaczęliśmy od zainstalowania Jenkinsa na CoreOS, stworzenia wymaganych artefaktów i utworzenia węzła Jenkins. W kolejnym artykule skonfigurujemy plik Jenkins dla potoku Jenkins i utworzymy potok Jenkins. A w trzecim artykule uruchomimy potok Jenkins, aby zainstalować Kubernetes.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Natychmiastowa inicjalizacja pliku:wpływ podczas instalacji

  2. Ulepszanie naszego modelu danych internetowego portalu pracy

  3. Niezamierzone skutki uboczne – sesje snu trzymające kłódki

  4. Jak używać LIKE w SQL

  5. 2013 MVP Summit:krótki przegląd i spojrzenie w przód