sql >> Databáze >  >> RDS >> Database

Použití Jenkinse s Kubernetes AWS, část 1

CoreOS je operační systém navržený pro kontejnery Docker. CoreOS má Docker předinstalovaný hned po vybalení. Kubernetes lze nainstalovat na CoreOS pomocí CloudFormation, jak je podrobně popsáno v dřívějším článku „Začínáme s Kubernetes na Amazon Web Services (AWS).“

Problém

Kubernetes není předinstalovaný na CoreOS a lze jej nainstalovat pomocí kube-aws a vyžaduje určitý uživatelský vstup a konfiguraci. Instalace Kubernetes na CoreOS je obtížný proces a skládá se z následujících fází znázorněných na obrázku 1.


Obrázek 1: Instalace Kubernetes na CoreOS Stages

Řešení

Jenkins Pipeline lze použít k automatizaci instalace Kubernetes, jak je znázorněno na obrázku 2. Různé fáze instalace lze nakonfigurovat v Jenkinsfile a když je potrubí spuštěno, kube-aws stáhne se nástroj, CloudFormation zásobník se inicializuje, vykreslí se obsah adresáře aktiv, přizpůsobí se parametry clusteru, jako je počet instancí pracovníků, a následně se cluster ověří a spustí.


Obrázek 2: Jenkins Pipeline pro instalaci Kubernetes na CoreOS

Instalace Kubernetes pomocí Jenkins Pipeline je příkladem Automation Návrhový vzor DevOps.

V tutoriálu se třemi články zautomatizujeme proces instalace Kubernetes pomocí Jenkins Pipeline. Tento článek má následující sekce:

  • Nastavení prostředí
  • Vytvoření nezbytných artefaktů
  • Vytvoření Jenkinsova uzlu
  • Závěr

Nastavení prostředí

Nainstalujeme Jenkins pomocí Docker image „jenkins“ na instanci CoreOS. Spustíme cluster Kubernetes na instanci Amazon AMI Linux EC2 pomocí Jenkins Pipeline. Nejprve spusťte dvě instance EC2, jednu s Amazon Linux a druhou s CoreOS, jak ukazuje obrázek 3.


Obrázek 3: Získání veřejné IP adresy

Při vytváření instance Amazon Linux vytvořte nový pár klíčů (například „jenkins“) výběrem „Vytvořit nový pár klíčů“ a stáhněte si soukromý klíč „jenkins.pem“, který se použije pro konfiguraci agenta Jenkins. Získejte veřejnou IP adresu instance EC2 se systémem CoreOS a SSH a přihlaste se k instanci.

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

Spusťte obraz Docker pro Jenkinse a spusťte Jenkins.

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

Stáhne se obrázek Dockeru „Jenkins“. Jenkins začíná. Zkopírujte vygenerované heslo. Získejte veřejné DNS instance EC2, na které běží Jenkins. Pomocí adresy URL :8080 , přihlaste se do Jenkins Dashboard, jak je znázorněno na obrázku 4.


Obrázek 4: Jenkins Admin Console

Vytvoření nezbytných artefaktů

Nyní musíme vytvořit nějaké artefakty pro cluster Kubernetes, které nejsou přístupné automatizaci.

  • Pár klíčů EC2
  • Klíč KMS
  • Adresář Jenkins /var/jenkins
  • Přihlášení pomocí SSH k instanci Amazon EC2 se systémem Amazon Linux
ssh -i "jenkins.pem"  [email protected]

Protože se používá Amazon EC2, je vyžadován účet AWS. Potřebujeme vytvořit sadu přihlašovacích údajů AWS Security, které použijeme ke konfiguraci instance EC2, ze které se spouští zásobník CloudFormation. Chcete-li vytvořit nová pověření zabezpečení AWS, klikněte na Pověření zabezpečení pro uživatelský účet a klikněte na Vytvořit nový přístupový klíč pro vytvoření přístupového klíče. Zkopírujte ID přístupového klíče a přístupový klíč. V instanci Amazon Linux spusťte následující příkaz pro konfiguraci instance s přihlašovacími údaji AWS:

aws configure

Po zobrazení výzvy zadejte ID přístupového klíče a přístupový klíč. Zadejte výchozí název oblasti (us-east-1 ) a výstupní formát (json ), jak je znázorněno na obrázku 5.


Obrázek 5: Konfigurace instance Jenkins pomocí pověření AWS, oblasti a výchozího výstupního formátu

Dále vytvořte pár klíčů EC2. Spuštěním následujícího příkazu vytvořte pár klíčů s názvem kubernetes-coreos a uložte jej jako kubernetes-coreos.pem .

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

Upravte přístupová oprávnění páru klíčů pomocí režimu 400, který nastavuje oprávnění ke čtení vlastníkem.

chmod 400 kubernetes-coreos.pem

Vytvoří se pár klíčů a nastaví se přístupová oprávnění (viz obrázek 6).


Obrázek 6: Vytvoření páru klíčů pro Kubernetes

Pár klíčů se také zobrazí v konzole AWS EC2, jak je znázorněno na obrázku 7.


Obrázek 7: Získání veřejné IP adresy

Dále vytvořte klíč KMS, který se používá k šifrování/dešifrování aktiv clusteru TLS a je identifikován řetězcem Arn. Použijte aws rozhraní příkazového řádku k vytvoření klíče KMS pro region us-east-1 .

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

Vytvoří se klíč KMS, jak ukazuje obrázek 8. Zkopírujte KeyMetadata.Arn řetězec začínající arn:aws:kms:us-east-1 k pozdějšímu použití k inicializaci clusteru CloudFormation.


Obrázek 8: Vytvoření klíče KMS

Potřebujeme také vytvořit adresář pro Jenkinse:

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

Vytvoří se adresář a nastaví se oprávnění, jak ukazuje obrázek 9.


Obrázek 9: Vytvoření adresáře pro Jenkinse

Vytvoření Jenkinsova uzlu

Jenkins Pipeline je projekt Jenkins, který využívá zásuvný modul Jenkins Pipeline. Potrubí se obvykle skládá z posloupnosti kroků, přičemž každý krok provádí úkol. Dostupné exekutory na agentech se používají ke spuštění projektu Jenkins. „Agent“ je stroj konfigurovaný pro stahování projektů z hlavního uzlu. „Hlavní“ uzel je stroj, na kterém je Jenkins nainstalován a zpracovává všechny úlohy systému sestavení, včetně analýzy skriptů Pipeline a spuštění projektu Jenkins na exekutoru. „Exekutor“ je výpočetní prostředek pro kompilaci kódu a mohl by být konfigurován na uzlech master nebo agent. V této části vytvoříme uzel agenta a nakonfigurujeme na něm spouštěče. Vyberte možnost Spravovat Jenkinse v Jenkins Dashboard, jak je znázorněno na obrázku 10.


Obrázek 10: Získání veřejné IP adresy

Následně vyberte Spravovat uzly , jak je znázorněno na obrázku 11.


Obrázek 11: Získání veřejné IP adresy

Měl by být uveden „hlavní“ uzel. Klikněte na Nový uzel vytvořte uzel agenta, jak je znázorněno na obrázku 12.


Obrázek 12: Získání veřejné IP adresy

Zadejte Název uzlu (jenkins , například) a vyberte Stálého zástupce přepínací tlačítko, jak je znázorněno na obrázku 13. Klepněte na tlačítko OK.


Obrázek 13: Získání veřejné IP adresy

Ke konfiguraci nového uzlu agenta potřebujeme hostitelský DNS, na kterém má být agent vytvořen. Zkopírujte veřejný DNS z konzoly AWS EC2 pro instanci EC2 s bitovou kopií Amazon Linux, jak je znázorněno na obrázku 14.


Obrázek 14: Získání veřejné IP adresy

V novém uživatelském rozhraní pro vstup agenta zadejte Název (jenkins , například). Zadejte # exekutorů jako 1. Zadejte Vzdálený kořenový adresář jako /var/jenkins , který byl vytvořen dříve. Zadejte Štítky jako „jenkins“, jejichž význam probereme v následující části. V části Použití , ponechte výchozí nastavení „Používejte tento uzel co nejvíce“. V části Metoda spuštění , vyberte „Spustit podřízené agenty na strojích Unix přes SSH“. V Hostitel , zadejte veřejný DNS zkopírovaný z EC2 Console. V části Dostupnost , vyberte „Udržovat tohoto agenta co nejvíce online“. Pro Přihlašovací údaje , klikněte na tlačítko Přidat a vyberte Poskytovatel pověření Jenkins , jak je znázorněno na obrázku 15.


Obrázek 15: Získání veřejné IP adresy

V části Přidat přihlašovací údaje vyberte jako Globální přihlašovací údaje možnost Doména a Laskavý jako Globální . Zadejte Uživatelské jméno jako „ec2-user“ a vyberte Zadat přímo . Zkopírujte a vložte obsah souboru soukromého klíče jenkins.pem v Klíče pole, jak je znázorněno na obrázku 16.


Obrázek 16: Přidání Jenkinsových přihlašovacích údajů

Klikněte na Přidat , jak je znázorněno na obrázku 17.


Obrázek 17: Jenkins Credentials Provider>Přidat

Vyberte ec2-user přihlašovací údaje v Přihlašovací údaje , jak je znázorněno na obrázku 18. Klikněte na Uložit .


Obrázek 18: Konfigurace Jenkins Node

Bude přidán nový agent, jak je znázorněno na obrázku 19. Zpočátku nemusí být agent dostupný, protože se stále začíná.


Obrázek 19: Jenkins Agent vytvořen

Klikněte na odkaz agenta a klikněte na Znovu spustit agenta , v případě potřeby, jak je znázorněno na obrázku 20.


Obrázek 20: Opětovné spuštění agenta

Výstupní zpráva „Agent byl úspěšně připojen a online“ znamená, že agent byl spuštěn (viz Obrázek 21).


Obrázek 21: Agent se úspěšně připojil a je online

Agent „jenkins“ by měl být uveden jako spuštěný, jak je znázorněno na obrázku 22.


Obrázek 22: Jenkins Agent Running

Závěr

V tomto článku jsme představili důležitost automatizace instalace Kubernetes pomocí Jenkins. Začali jsme instalací Jenkinse na CoreOS, vytvořením nezbytných artefaktů a vytvořením Jenkinsova uzlu. V následujícím článku nakonfigurujeme Jenkinsfile pro Jenkinsovo potrubí a vytvoříme Jenkinsovo potrubí. A ve 3. článku spustíme Jenkinsovo potrubí pro instalaci Kubernetes.


  1. Jak přidat uživatelskou skupinu Active Directory jako přihlášení na SQL Server

  2. Použití CHOP ve výuce

  3. Jak mohu získat přístup k příkazovému řádku MySQL pomocí XAMPP pro Windows?

  4. Jak mohu upravit velikost sloupce v tabulce MySQL?