GNU/Linux >> Znalost Linux >  >> Linux

Kubernetes cluster pomocí K3S s Multipass společnosti Canonical

Toto je další záznam notebooku související s Kubernetes, ve kterém zdokumentuji postup nastavení clusteru Kubernetes pomocí K3S ve virtuálních počítačích vytvořených pomocí Canonical Multipass. Kromě toho popíšu, jak nakonfigurovat kubectl, nástroj pro správu clusteru příkazového řádku Kubernetes pro správu clusteru K3S mimo virtuální počítače, na kterých bude cluster běžet.

Multipass lze spustit ve Windows, Mac OS X a Linux, takže postup popsaný v tomto článku by měl platit pro všechna výše zmíněná prostředí, i když jsem ho testoval pouze v Mac OS X.

Pozadí

Bystrý čtenář si vzpomene na můj nedávný článek, ve kterém jsem popisoval, jak spustit cluster Kubernetes v Dockeru, a možná se diví, proč jsem nyní místo Kind přešel na K3S.
Jsou pro to dva důvody:

  • K3S tvrdí, že je připraven na výrobu.
    Možná není připravena výroba v měřítku Google, ale mám podezření, že pro mé potřeby stačí.
  • K3S se více podobá skutečnému clusteru Kubernetes.
    Během krátké doby, co pracuji s Kind, jsem se setkal se dvěma problémy, které mě donutily podívat se na K3S:
  • – Kind cluster nelze restartovat.
  • – Kind nepodporuje typ LoadBalancer.

Předpoklady

Abych se připravil na K3S, nainstaluji si několik nástrojů, které budu potřebovat, a poté vytvořím virtuální stroje, na kterých K3S poběží.

Nástroje

Před instalací K3S je třeba na počítači, který má fungovat jako hostitel pro virtuální stroje, nainstalovat následující nástroje:

  • Víceprůchodové
    Virtuální stroj Canonical, na kterém lze spouštět instance Ubuntu.
    Návod, jak nainstalovat Multipass, naleznete zde.
  • kubectl
    Stejně jako dříve je kubectl nástroj pro správu clusteru příkazového řádku Kubernetes.
    Návod jak nainstalovat kubectl naleznete zde.

Virtuální stroje

Vytvořím cluster Kubernetes, který se skládá ze dvou uzlů; jeden mistr a jeden agent. K tomu budu potřebovat dva virtuální stroje.

Po instalaci Multipass otevřete okno terminálu:

  • Vytvořte a spusťte virtuální počítač hlavního uzlu:
multipass launch --name k3s-master --mem 4G --disk 5G 18.04
multipass launch --name k3s-agent --mem 4G --disk 5G 18.04
  • Ověřte dva virtuální počítače:
multipass list

Výstup by měl být podobný následujícímu:

Name                    State             IPv4             Image
k3s-agent               Running           192.168.64.10    Ubuntu 18.04 LTS
k3s-master              Running           192.168.64.7     Ubuntu 18.04 LTS

Poznamenejte si IP adresu k3s-master – bude potřeba později při instalaci K3S na uzel agenta.

Nainstalujte K3S

Následující text popisuje, jak nainstalovat K3S na hlavní uzly a uzly agenta.

Nainstalujte K3S na hlavní uzel

V tomto kroku nainstalujeme K3S na hlavní uzel a získáme token hlavního uzlu, který budeme později potřebovat k vytvoření uzlu K3S, který bude spravovat správce.

  • V případě potřeby otevřete okno terminálu.
  • Otevřete prostředí na hlavním virtuálním počítači k3s:
multipass shell k3s-master
curl -sfL https://get.k3s.io | sh -

V konzole by se měl objevit výstup podobný následujícímu:

[INFO]  Finding latest release
[INFO]  Using v1.17.4+k3s1 as release
[INFO]  Downloading hash https://github.com/rancher/k3s/releases/download/v1.17.4+k3s1/sha256sum-amd64.txt
[INFO]  Downloading binary https://github.com/rancher/k3s/releases/download/v1.17.4+k3s1/k3s
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
chcon: can't apply partial context to unlabeled file '/usr/local/bin/k3s'
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s.service
[INFO]  systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO]  systemd: Starting k3s

Ověřte instalaci K3S:

k3s -version

takže výstup z výše uvedeného příkazu vypadá takto:

k3s version v1.17.4+k3s1 (3eee8ac3)

Získejte token hlavního uzlu:

sudo cat /var/lib/rancher/k3s/server/node-token
K103a5c4b22b4de5715dff39d58b1325c38e84217d40146c0f65249d439cab1a531::server:271a74dadde37a98053a984a8dc676f8

Ukončete prostředí k3s-master VM:

exit

Nainstalujte K3S na Agent Node

S IP adresou a tokenem uzlu hlavního serveru K3S jsem nyní připraven nainstalovat K3S na uzel agenta:

  • V případě potřeby otevřete okno terminálu.
  • Otevřete prostředí na virtuálním počítači agenta k3s:
multipass shell k3s-agent
  • Nainstalujte nejnovější verzi K3S pro uzel agenta.
    Nahraďte IP adresu k3s-master v proměnné K3S_URL a token uzlu v proměnné K3S_TOKEN:
curl -sfL https://get.k3s.io | K3S_URL="https://192.168.64.7:6443" K3S_TOKEN="K103a5c4b22b4de5715dff39d58b1325c38e84217d40146c0f65249d439cab1a531::server:271a74dadde37a98053a984a8dc676f8" sh -

Výstup podobný tomuto by se měl objevit v konzole:

[INFO]  Finding latest release
[INFO]  Using v1.17.4+k3s1 as release
[INFO]  Downloading hash https://github.com/rancher/k3s/releases/download/v1.17.4+k3s1/sha256sum-amd64.txt
[INFO]  Downloading binary https://github.com/rancher/k3s/releases/download/v1.17.4+k3s1/k3s
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
chcon: can't apply partial context to unlabeled file '/usr/local/bin/k3s'
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-agent-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s-agent.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s-agent.service
[INFO]  systemd: Enabling k3s-agent unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s-agent.service → /etc/systemd/system/k3s-agent.service.
[INFO]  systemd: Starting k3s-agent

Ukončete prostředí virtuálního počítače k3s-agent:

exit

Ověřte klastr

Před konfigurací kubectl v hostiteli Multipass VM (nebo jinde, mimo virtuální stroje K3S), chci rychle ověřit, zda je cluster K3S správně nastaven.

  • V případě potřeby otevřete okno terminálu.
  • Otevřete prostředí na hlavním virtuálním počítači k3s:
multipass shell k3s-master

Seznam uzlů v clusteru:

sudo kubectl get nodes -o wide

V mém případě vypadá seznam uzlů takto:

NAME         STATUS   ROLES    AGE     VERSION        INTERNAL-IP     EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
k3s-agent    Ready    <none>   5m31s   v1.17.4+k3s1   192.168.64.10   <none>        Ubuntu 18.04.4 LTS   4.15.0-91-generic   containerd://1.3.3-k3s2
k3s-master   Ready    master   39m     v1.17.4+k3s1   192.168.64.7    <none>        Ubuntu 18.04.4 LTS   4.15.0-91-generic   containerd://1.3.3-k3s2
exit

Konfigurovat externí kubectl

Se spuštěným a spuštěným clusterem K3S nyní nakonfiguruji kubectl, který jsem nainstaloval na hostiteli virtuálního počítače, což je můj vývojový počítač, abych mohl spravovat cluster K3S.

Načíst konfiguraci hlavního uzlu kubectl

Aby bylo možné nakonfigurovat externí nástroj pro správu kubectl pro správu právě vytvořeného clusteru K3S, zkopíruji konfiguraci kubectl z hlavního uzlu a později provedu několik úprav:

  • V případě potřeby otevřete okno terminálu.
  • Otevřete prostředí na hlavním virtuálním počítači k3s:

multipass shell k3s-master

  • Zobrazit konfiguraci kubectl hlavního uzlu:

sudo kubectl config view

V mém případě to vypadá takto:

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://127.0.0.1:6443
  name: default
contexts:
- context:
    cluster: default
    user: default
  name: default
current-context: default
kind: Config
preferences: {}
users:
- name: default
  user:
    password: ea3527757bd8c5c9ae8dbb00fef7595c
    username: admin

Všimněte si, že váš konfigurační soubor nebude totožný s výše uvedeným – bude se například lišit heslo.

  • Ukončete prostředí k3s-master VM:

exit

Nahradit konfiguraci kubectl

Nyní mohu nahradit konfiguraci kubectl v hostiteli virtuálního počítače upravenou verzí konfigurace kubectl z hlavního uzlu:

  • V případě potřeby otevřete okno terminálu.
  • Upravte nebo vytvořte místní konfiguraci kubectl, pokud neexistuje:

vi ~/.kube/config

  • Nahraďte obsah, pokud existuje, konfigurací kubectl z hlavního uzlu.
  • Změňte IP adresu clusteru na IP adresu hlavního virtuálního počítače k3s a nakonfigurujte tak, aby přeskakovalo ověření TLS.
    Výsledek bude vypadat takto, přičemž řádky 4 a 5 budou upraveny:
apiVersion: v1
clusters:
- cluster:
    insecure-skip-tls-verify: true
    server: https://192.168.64.7:6443
  name: default
contexts:
- context:
    cluster: default
    user: default
  name: default
current-context: default
kind: Config
preferences: {}
users:
- name: default
  user:
    password: ea3527757bd8c5c9ae8dbb00fef7595c
    username: admin
  • Uložte konfiguraci a ukončete vi:
    :wq
  • Ověřte konfiguraci:

kubectl get nodes

Stejné uzly, jaké jsou uvedeny v hlavním uzlu, by nyní měly být uvedeny také, i když v kompaktnějším seznamu:

NAME         STATUS   ROLES    AGE   VERSION
k3s-master   Ready    master   66m   v1.17.4+k3s1
k3s-agent    Ready    <none>   32m   v1.17.4+k3s1

Restartujte klastr K3S

Stejně jako v úvodu je jedním z důvodů přechodu z Kind na K3S možnost restartovat cluster K3S. Pokud potřebuji přerušit svou práci související s Kubernetes, prostě vypnu počítač, který je hostitelem virtuálních strojů K3S. Když později restartuji počítač, vše, co musím udělat, abych restartoval cluster K3S a obnovil jej do předchozího stavu, je restartování virtuálních počítačů clusteru pomocí následujících dvou příkazů:

multipass start k3s-master

multipass start k3s-agent


Linux
  1. Co je Kubernetes? Kompletní průvodce

  2. Jak nasadit svůj první modul na clusteru Kubernetes

  3. Nastavte cluster Kubernetes pomocí Rancher

  1. Jak nastavit Kubernetes Cluster pomocí Rancher

  2. Jak nasadit Redis Cluster na Kubernetes

  3. Jak nainstalovat Kubernetes Cluster na CentOS 7

  1. Jak nainstalovat Kubernetes (k8s) Cluster na RHEL 8

  2. Jak nainstalovat Kubernetes Cluster na Rocky Linux 8

  3. Jak nastavit Kubernetes(k8s) Cluster v HA s Kubeadm