GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nasadit Nginx Load Balancing na Kubernetes Cluster na Ubuntu 18.04 LTS

Kubernetes je bezplatný a otevřený systém pro orchestraci kontejnerů, který lze použít k nasazení a správě kontejneru. Byl vyvinut společností Google a speciálně navržen pro automatické škálování a automatizované nasazení. Kubernetes může běžet na jakékoli cloudové infrastruktuře a na holém kovu. Kubernetes umožňuje distribuovat více aplikací v rámci clusteru uzlů. Kubernetes přichází s bohatou sadou funkcí včetně samoléčení, automatické škálovatelnosti, vyvažování zátěže, spouštění dávek, horizontálního škálování, zjišťování služeb, orchestrace úložiště a mnoha dalších.

V tomto tutoriálu se naučíme, jak nastavit Nginx load balancing s Kubernetes na Ubuntu 18.04.

Požadavky

  • Dva servery s nainstalovaným Ubuntu 18.04.
  • Na každém serveru je nainstalováno minimálně 2 GB paměti RAM.
  • Na obou serverech je nakonfigurováno heslo uživatele root.

Začínáme

Nejprve budete muset aktualizovat oba servery na nejnovější stabilní verzi. Můžete je aktualizovat spuštěním následujícího příkazu:

apt-get update -y
apt-get upgrade -y

Jakmile jsou oba servery aktualizovány, restartujte je, aby se všechny změny projevily.

Ve výchozím nastavení Kuberenetes nepodporuje odkládací paměť a nebude fungovat, pokud je swap aktivní. Takže budete muset zakázat odkládací paměť na obou serverech.

Chcete-li dočasně zakázat odkládací paměť, spusťte následující příkaz:

swapoff -a

Chcete-li trvale zakázat odkládací paměť, otevřete soubor /etc/fstab:

nano /etc/fstab

Zakomentujte poslední řádek:

# /etc/fstab:informace o statickém systému souborů.
#
# použijte 'blkid' k vytištění univerzálně jedinečného identifikátoru zařízení
#; to lze použít s uuid=jako robustnější způsob pojmenování zařízení
#, který funguje i po přidání a odebrání disků. viz fstab(5).
#
# <systém souborů> <bod připojení> <typ> <možnosti> <skládka> <pass>
# / byl během instalace zapnutý /dev/sda1
# swap byl během instalace zapnutý /dev/sda4#UUID=65se21r-1d3t-3263-2198-e564c275e156 žádný swap sw 0 0

Uložte a zavřete soubor. Poté spusťte následující příkaz a použijte změny konfigurace:

mount -a

Dále budete muset nastavit rozlišení názvu hostitele na obou serverech. Každý server tedy může mezi sebou komunikovat pomocí názvu hostitele.

Chcete-li tak učinit, otevřete soubor /etc/hosts pomocí preferovaného editoru:

nano /etc/hosts

Přidejte následující řádky:

192.168.0.103 master192.168.0.100 slave

Po dokončení uložte a zavřete soubor. Poté přejděte k dalšímu kroku.

Instalovat Docker And Kubernetes

Dále budete muset nainstalovat nástroje Docker a Kubernetes kubelet, kubeadm a kubectl na oba servery.

Nejprve nainstalujte požadované balíčky a přidejte klíč GPG pomocí následujícího příkazu:

apt-get install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -

Dále přidejte úložiště Docker CE na oba servery spuštěním následujícího příkazu:

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Dále aktualizujte úložiště a nainstalujte Docker CE pomocí následujícího příkazu:

apt-get update -y
apt-get install docker-ce -y

Po dokončení instalace zkontrolujte stav Docker CE pomocí následujícího příkazu:

systemctl status docker

Měli byste vidět následující výstup:

? docker.service – Docker Application Container Engine Načteno:načteno (/lib/systemd/system/docker.service; povoleno; přednastaveno dodavatelem:povoleno) Aktivní:aktivní (běží) od pá 2019-07-19 07:05:50 UTC; Před 1h 24min Dokumenty:https://docs.docker.com Hlavní PID:3619 (dockerd) Úkoly:8 CGroup:/system.slice/docker.service ??3619 /usr/bin/dockerd -H fd:// - -containerd=/run/containerd/containerd.sock 19. července 07:05:48 master dockerd[3619]:time="2019-07-19T07:05:48.574491681Z" level=warning msg="Vaše jádro wap nepodporuje s limit"Jul 19 07:05:48 master dockerd[3619]:time="2019-07-19T07:05:48.575196691Z" level=warning msg="Vaše jádro nepodporuje cgroup rt period" 19. července 07:05:48 master dockerd[3619]:time="2019-07-19T07:05:48.575733336Z" level=warning msg="Vaše jádro nepodporuje cgroup rt runtime" 19. července 07:05:48 master dockerd[3619]:="2019-07-19T07:05:48.582517104Z" level=info msg="Načítání kontejnerů:start."Jul 19 07:05:49 master dockerd[3619]:time="2019-07-19T07:05:2549.39 Z" level=info msg="Výchozí most (docker0) je přiřazen s IP addJul 19 07:05:49 master dockerd[3619]:time="2019-07-19T07:05:49.681478822Z" level=info msg="Načítání con tainers:done." Jul 19 07:05:50 master dockerd[3619]:time="2019-07-19T07:05:50.003776717Z" level=info msg="Docker daemon" commit=0dd43dd graphdriver(s)=overlaJul 19 07:05:50 master dockerd[3619]:time="2019-07-19T07:05:50.009892901Z" level=info msg="Daemon dokončil inicializaci" Jul 19 07:05:50 master systemd[1]:Started Docker Application Container Engine.Jul 19 07:05:50 master dockerd[3619]:time="2019-07-19T07:05:50.279284258Z" level=info msg="API poslouchat na /var/run/docker.sock "
."

Balíčky Kubernetes nejsou dostupné ve výchozím úložišti Ubuntu 18.04. Takže budete muset přidat úložiště Kubernetes na oba servery.

Můžete jej přidat pomocí následujících příkazů:

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
echo 'deb http://apt.kubernetes.io/ kubernetes-xenial main' | tee /etc/apt/sources.list.d/kubernetes.list

Dále aktualizujte úložiště a nainstalujte balíčky Kubernetes pomocí následujícího příkazu:

apt-get install kubelet kubeadm kubectl -y

Jakmile jsou všechny balíčky nainstalovány, můžete pokračovat v konfiguraci hlavního serveru.

Konfigurace hlavního serveru Kubernetes

Nejprve budete muset inicializovat váš cluster s jeho privátní IP adresou na hlavním serveru:

Můžete to udělat pomocí příkazu kubeadm:

kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=192.168.0.103

Po úspěšné inicializaci Clusteru byste měli vidět následující výstup:

Vaše řídicí rovina Kubernetes byla úspěšně inicializována! Chcete-li začít používat svůj cluster, musíte jako běžný uživatel spustit následující:mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $ HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/configNyní byste měli nasadit síť pod do clusteru. Spusťte "kubectl apply -f [podnetwork].yaml" s jednou z možností uvedených na:https://kubernetes.io/docs/concepts/cluster-administration/addons/Pak se můžete připojit k libovolnému počtu pracovních uzlů spuštěním následujícího na každém jako root:kubeadm join 192.168.0.103:6443 --token zsyq2w.c676bxzjul3upd7u \ --discovery-token-ca-cert-hash sha256:a720ae35d472162177f6ee39de758a5de40043f53e4a2cf 

Dále budete muset nakonfigurovat nástroj kubectl na vašem hlavním serveru. Můžete to udělat pomocí následujícího příkazu:

mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g ) $HOME/.kube/config

Dále budete muset na svůj server nasadit rozhraní CNI (Container Networking Interface). Protože cluster nemá CNI.

CNI můžete nasadit do svého clusteru pomocí následujícího příkazu:

kubectl použít -f https://docs.projectcalico.org/v2.6/getting-started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml

Měli byste vidět následující výstup:

configmap/calico-config createddaemonset.extensions/calico-etcd createdservice/calico-etcd createddaemonset.extensions/calico-node createddeployment.extensions/calico-kube-controllers createddeployment.extensions/calico-policy-controller createdclusterrolebinding.rbac. .k8s.io/calico-cni-plugin createdclusterrole.rbac.authorization.k8s.io/calico-cni-plugin createdserviceaccount/calico-cni-plugin createdclusterrolebinding.rbac.authorization.k8s.io/calico-kube-controllers createdclusterrole.rbac .authorization.k8s.io/calico-kube-controllers createdserviceaccount/calico-kube-controllers created

Nyní můžete zkontrolovat své jmenné prostory spuštěním následujícího příkazu:

kubectl získat jmenné prostory

Pokud vše proběhne v pořádku, měli byste vidět následující výstup:

NAME STATUS AGEdefault Active 4hkube-public Active 4hkube-system Active 4h

Dále ověřte, zda hlavní uzel nyní běží správně pomocí následujícího příkazu:

kubectl získat uzly

Měli byste vidět následující výstup:

název stav role věk versionmaster Ready master 12m v1.15.3

Přidat Slave do clusteru Kubernetes

Dále se přihlaste ke svému podřízenému serveru a spusťte následující příkaz pro přidání podřízeného serveru do clusteru Kubernetes:

připojit se ke kubeadm 192.168.0.103:6443 --token zsyq2w.c676bxzjul3upd7u --discovery-token-ca-cert-hash sha256:a720ae35d472162177f75eed49ef75eed439de
 Dále přejděte na hlavní server a zkontrolujte, zda je podřízený server přidán do vašeho clusteru Kubernetes pomocí následujícího příkazu:

kubectl získat uzly

Měli byste vidět následující výstup:

jméno stav role věk verzemaster ready master 25m v1.15.3slave ready 2m v1.15.3

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Nasazení NGINX na clusteru Kubernetes

Kubernetes cluster je nyní nainstalován, nakonfigurován a funguje správně. Je čas nasadit Nginx na cluster Kubernetes.

Přejděte na hlavní server a vytvořte nasazení Nginx pomocí následujícího příkazu:

kubectl vytvořit nasazení nginx --image=nginx

Nyní můžete vypsat rozmístění Nginx pomocí následujícího příkazu:

kubectl získat nasazení

Měli byste vidět následující výstup:

JMÉNO PŘIPRAVENO AKTUÁLNĚ DOSTUPNÉ AGEnginx 1/1 1 1 99s

Po nasazení Nginx lze aplikaci zpřístupnit pomocí následujícího příkazu:

kubectl vytvořit servisní nodeport nginx --tcp=80:80

Nyní můžete vidět novou adresu Service a ClusterIP přiřazenou následujícím příkazem:

kubectl získat svc

Měli byste vidět následující výstup:

NAME TYP CLUSTER-IP EXTERNÍ-IP PORT(Y) AGEkubernetes ClusterIP 10.152.183.1 <žádný> 443/TCP 15mnginx ClusterIP 10.152.183.199 <žádný> 80:32450s 

Gratulujeme! úspěšně jste nasadili Nginx na clusteru Kubernetes. Do clusteru Kubernetes můžete také snadno přidat další uzel. Další informace najdete v oficiálním dokumentu Kubernetes na adrese Kubernetes Doc. Neváhejte se mě zeptat, pokud máte nějaké otázky.


Ubuntu
  1. Jak nasadit NGINX Reverse Proxy na Docker

  2. Jak nasadit Modsecurity s Nginx na Ubuntu 20.04 LTS

  3. Nasaďte Modsecurity s Nginx na Ubuntu 20.04 LTS

  1. Jak nasadit Redis Cluster na Kubernetes

  2. Jak nainstalovat Kubernetes na Ubuntu 18.04

  3. Jak nainstalovat Docker na Ubuntu 20.04 LTS Focal Fossa

  1. Jak nainstalovat Docker na Ubuntu 22.04 / 20.04 LTS

  2. Jak nainstalovat a nakonfigurovat Kubernetes a Docker na Ubuntu 18.04 LTS

  3. Jak nasadit Ghost Blog s Nginx na Ubuntu 18.04 LTS