Kubernetes je bezplatný a otvorený systém správy kontajnerov ktorý poskytuje platforma na automatizáciu nasadenia, škálovania a prevádzky aplikačných kontajnerov naprieč skupinami hostiteľských počítačov.
S Kubernetes môžu voľne využívať miestnu, verejnú a hybridnú cloudovú infraštruktúru na vykonávanie úloh nasadenia svojej organizácie.
Inštalácia Kubernetes na Ubuntu a deriváty
Pre praktickú inštaláciu použijeme klaster s dvoma uzlami, ktorý vytvoríme v tomto článku, bude pozostávať z hlavného uzla a podriadeného uzla.
Na oboch uzloch musí byť nainštalovaný program Kubernetes. Prvá vec, ktorú urobíme, je nainštalovať docker na obidve z nich, stačí na nich spustiť nasledujúci príkaz:
sudo apt install docker.io
Ak chcete skontrolovať, či je ukotviteľný panel nainštalovaný, na oboch uzloch môžete spustiť nasledujúci príkaz:
docker --version
Teraz poďme povoliť ukotviteľný panel na oboch uzloch:
sudo systemctl enable docker
Ďalším krokom je pridanie kľúča Kubernetes do oboch uzlov. Vykonáme to pomocou nasledujúceho príkazu:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
Ďalším krokom je pridanie nasledujúceho úložiska do oboch systémov:
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
Posledným krokom procesu inštalácie je inštalácia Kubeadm na oba uzly pomocou nasledujúceho príkazu:
sudo apt install kubeadm
Môžu skontrolovať číslo verzie Kubeadm a tiež overiť inštaláciu pomocou nasledujúceho príkazu:
kubeadm version
Nasadenie spoločnosti Kubernetes
Teraz, aby sme implementovali nasadenie Kubernetes v systéme, musíme deaktivovať swapovú pamäť (ak je spustená) v oboch uzloch
Mali by deaktivovať swapovú pamäť na oboch uzlochpretože Kubernetes nefunguje správne v systéme, ktorý využíva odkladaciu pamäť.
Ak to chcete urobiť, stačí spustiť:
sudo swapoff -a
Ďalším krokom je spustite nasledujúci príkaz na hlavnom uzle a dajte mu jedinečný názov hostiteľa:
sudo hostnamectl set-hostname master-node
Zatiaľ čo pre podriadený uzol musíme napísať:
sudo hostnamectl set-hostname slave-node
Hotovo teraz vPokračujeme v inicializácii hlavného uzla pomocou nasledujúceho príkazu:
sudo kubeadm init --pod-network-cidr = 10.244.0.0/16
Proces môže trvať minútu alebo viac v závislosti od vášho internetového pripojenia. Výstup tohto príkazu je veľmi dôležitý, preto by ste si mali do výstupu zapísať informácie, pretože obsahujú ip, token a ďalšie.
Ak chcete začať používať svoj klaster, musíte ako bežný používateľ spustiť nasledujúce:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
Teraz môžu sa pripojiť k ľubovoľnému počtu strojov spustením nasledujúceho na každom uzle ako užívatelia root:
kubeadm join tuip --token tutoken --discovery-token-ca-cert-hash sha256:tuhash
Kde nahradia informácie o tutoken, tuip a vašom hashe informáciami, ktoré boli povedané pred pár okamihmi, ktoré si zapíšu.
Získanie zoznamu uzlov
Uvidíte, že stav hlavného uzla ešte nie je pripravený. Je to preto, že na hlavnom uzle ešte nebol nasadený žiadny modul, a preto je sieťové rozhranie kontajnera prázdne.
Ak chcete zobraziť zoznam, musíme iba vykonať:
kubectl get nodes
Nasadenie siete pod cez hlavný uzol
Sieť pod je prostriedkom komunikácie medzi uzlami siete. V tomto tutoriáli implementujeme sieť flanelových pod do nášho klastra pomocou nasledujúceho príkazu:
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Ak chcete zistiť stav siete, stačí napísať:
kubectl get pods --all-namespaces sudo kubectl get nodes
Akonáhle je to hotové, teraz je čas pridať podradený uzol do siete a vytvoriť klaster, rovnakým spôsobom musia dopĺňať informácie ako v hlavnom uzle.
sudo kubeadm join tuip --token tutoken --discovery-token-ca-cert-hash sha256:tuhash
Keď teraz spustíte nasledujúci príkaz na hlavnom uzle, potvrdí sa, že vo vašom systéme bežia dva uzly, hlavný uzol a serverové uzly.
sudo kubectl get nodes
To ukazuje, že dvojuzlový klaster je teraz v prevádzke prostredníctvom systému správy kontajnerov Kubernetes.