Przewodnik dla początkujących po Kubernetes

Przewodnik dla początkujących po Kubernetes
Ten przewodnik przedstawi Ci, jak działa Kubernetes i jak zacząć z Kubernetes.

Co to jest Kubernetes?

Kubernetes lub K8s to bezpłatna platforma open source do zarządzania środowiskami i usługami aplikacji kontenerowych. Kubernetes umożliwia tworzenie przenośnych i wysoce rozszerzalnych aplikacji kontenerowych, które są łatwe do wdrożenia i zarządzania. Jest powszechnie używany obok Dockera do opracowania lepszej kontroli aplikacji i usług kontenerowych.

Funkcje Kubernetes

Poniżej znajdują się podstawowe funkcje oferowane przez Kubernetes:

  1. Zautomatyzowane wdrażania i wycofania w przypadku wystąpienia błędów.
  2. Automatyczna infrastruktura skalowalna.
  3. Skalowanie poziome
  4. MOLET RAMILANCERS
  5. Zautomatyzowane kontrole zdrowia i możliwości samoleczenia.
  6. Bardzo przewidywalna infrastruktura
  7. Montaże i system pamięci do uruchamiania aplikacji
  8. Efektywne wykorzystanie zasobów
  9. Każda jednostka Kubernetes jest luźno związana ze sobą, a każda może działać jako samodzielny komponent.
  10. Automatyczne zarządzanie komponentami bezpieczeństwa, sieci i sieci.

Architektura Kubernetes

Zrozumienie architektury Kubernetes pomoże Ci uzyskać głębszą wiedzę o tym, jak pracować z Kubernetes.

Poniżej znajdują się komponenty sprzętowe architektury Kubernetes:

Węzeł jest reprezentacją pojedynczej maszyny w klastrze Kubernetes. Węzeł reprezentuje pojedynczy komputer roboczy, albo w maszynie wirtualnej lub fizycznym sprzęcie.

Każdy węzeł w Kubernetes zawiera różne komponenty oprogramowania Kubernetes, takie jak PODS, KUBULET, KUBE-PROXY i Kontener Runtime, taki jak Docker.

POD odnosi się do jednej lub więcej aplikacji kontenerowych pakowanych razem. Kubernetes zarządza odpowiednimi kapsułami zamiast pojemników i tworzy repliki, jeśli jeden z nich zawodzi. Podsorki zapewniają wspólne zasoby, takie jak interfejsy sieciowe i urządzenia pamięci masowej.

Kontener/usterka pojemnika

Pojemnik to izolowany, samodzielny pakiet oprogramowania. Kontener zawiera wszystko, co wymagane do uruchomienia aplikacji, w tym kod, bibliotek systemowych i innych zależności. Po wdrożeniu kontenera nie można zmienić kodu, ponieważ są one niezmienne. Domyślnie Kubernetes Container Runtime jest dostarczany przez Docker.

Kubelet

Kubelet to prosta aplikacja, która umożliwia komunikację między węzłem a węzłem głównym. Jest odpowiedzialny za zarządzanie kapsułami i kontenerami. Węzeł główny używa kubectl do wykonywania niezbędnych działań do określonego węzła.

Kube-proxy

Kube-proxy to serwisowy serwer proxy, który jest dostępny we wszystkich węzłach Kubernetes. Zarządza komunikacją sieciową wewnątrz i na zewnątrz klastra.

Grupa

Klaster to zbiór węzłów Kubernetes, które agregują ich zasoby, aby stworzyć potężną maszynę. Zasoby udostępnione przez węzły Kubernetes obejmują pamięć, procesor i dyski.

Klaster Kubernetes składa się z jednego węzła głównego i innych węzłów niewolników. Węzeł główny kontroluje klaster Kubernetes, w tym aplikacje do planowania i skalowania, pchanie i stosowanie aktualizacji oraz zarządzanie stanami klastra.

Trwałe tomy

Trwałe objętości są używane do przechowywania danych w klastrze Kubernetes. Trwałe objętości są wykonane z O różnych objętości z węzłów klastrów. Po usunięciu lub dodaniu węzła w klastrze, węzeł główny skutecznie rozkłada pracę.

Ingres

Kubernetes Ingress to obiekt API, który umożliwia dostęp do usługi Kubernetes poza klastrem. Ingress zwykle używa protokołu HTTP/HTTPS do ujawnienia Usług. Wejście jest zaimplementowane do klastra za pomocą kontrolera wnikania lub balansu obciążenia.

Gospodarz

Master, znany również jako płaszczyzna kontrolna, odnosi się do centralnego komponentu sterowania dla architektury Kubernetes. Jest odpowiedzialny za zarządzanie obciążeniem i interfejsem komunikacji między klastrem a jej członkami.

Mistrz składa się z różnych komponentów. Obejmują one:

  1. Menedżer kontroli
  2. Planista
  3. Serwer API
  4. Itp

Menedżer kontroli

Menedżer sterowania lub Kube-Control-Manager jest odpowiedzialny za uruchomienie i zarządzanie klastrem. Demon sterujący zbiera informacje o klastrze i zgłasza je z powrotem na serwer API.

Planista

Kube-Scheduler lub po prostu harmonogram jest odpowiedzialny za dystrybucję obciążenia pracą. Wykonuje funkcje takie jak określenie, czy klaster jest zdrowy, tworzenie pojemnika i więcej.

Śledzi zasoby, takie jak pamięć i procesor oraz harmonogram strąków do odpowiednich węzłów obliczeniowych.

Serwer API

Kube-apiserver to interfejs front-end do Kubernetes Master. Pozwala rozmawiać z klastrem Kubernetes. Po otrzymaniu żądania serwera API określa, czy żądanie jest prawidłowe i przetwarza je, jeśli jest to prawda.

Aby wchodzić w interakcje z serwerem API, musisz użyć wywołań REST za pomocą narzędzi sterowania wiersza poleceń, takich jak Kubectl lub Kubeadm.

Itp

ETCD to baza danych kluczowych odpowiedzialnych za przechowywanie danych konfiguracyjnych i informacji o stanie klastra Kubernetes. Odbiera polecenia z innych komponentów klastra i wykonuje niezbędne działania.

Uruchamianie Kubernetes

Ta sekcja obejmuje sposób, w jaki zacząć z Kubernetes. Ta ilustracja jest testowana w systemie Debian.

Uruchom terminal i zaktualizuj swój system.

Sudo apt-get Aktualizacja
Sudo apt-get Aktualizacja

Następnie zainstaluj różne wymagania, jak pokazano w poniższym poleceniu:

sudo apt-get instaluj curl gnupg ca-certyfikaty apt-transport-https

Zainstaluj Docker

Następnie musimy zainstalować Docker, ponieważ Kubernetes użyje go jako środowiska wykonania kontenera. Poniższe instrukcje dotyczą systemu operacyjnego Debian. Dowiedz się, jak zainstalować Dockera w swoim systemie.

Dodaj oficjalny klucz GPG Docker:

curl -fssl https: // pobierz.doker.com/Linux/Debian/GPG | sudo
gpg--dearmor -o/usr/share/keyrings/Docker-Archive-Keyring.GPG

Następnie skonfiguruj repozytoria Docker na źródłach, jak pokazano w poleceniu:

Echo \
„Deb [Arch = AMD64 Podpisane =/usr/share/keyrings/Docker-Archive-Keyring.gpg] https: // pobierz.doker.com/linux/debian \
$ (lsb_release -cs) stabilny "| sudo tee/etc/apt/źródła.lista.D/Docker.Lista> /dev /null

Następnie zaktualizuj i zainstaluj Docker:

sudo apt-get aktualizacja && sudo apt-get instal instaluj kontener Docker-CE.IO Docker-C-cli

Wreszcie rozpocznij i włącz usługę Docker

Sudo Systemctl Włącz Docker.praca
sudo systemctl start docker.praca

Zainstaluj Kubernetes

Następnie musimy zainstalować Kubernetes w systemie. Podobnie instrukcje w tym przewodniku są testowane w systemie Debian.

Dowiedz się, jak instalować Kubernetes w swoim systemie

Zacznij od pobrania klucza podpisywania Google Cloud:

sudo curl -fsslo/usr/share/keyrings/kubernetes-Archive-Keyring.GPG https: // pakiety.Chmura.Google.com/apt/doc/apt-key.GPG

Następnie dodaj repozytorium Kubernetes:

echo "Deb [podpisane przez =/usr/share/keyrings/kubernetes-archiwe-keyring.gpg] https: // apt.Kubernetes.IO/Kubernetes-Xenial Main "| sudo tee/etc/apt/źródła.lista.D/kubernetes.lista

Wreszcie zaktualizuj i zainstaluj komponenty Kubernetes

Sudo apt-get Aktualizacja

sudo apt-get instaluj kubectl kubelet kubeadm kubernetes kubernetes-cni

Inicitiaze Kubernetes Master Node

Następnym krokiem jest uruchomienie węzła głównego Kubernetes. Przed wykonaniem zaleca się wyłączenie zamiany.

Aby to zrobić, użyj polecenia:

Sudo Swapoff -a

Po wyłączeniu zamiany zainicjuj węzeł główny za pomocą poleceń:

sudo kubeadm init

Gdy polecenie ulega pomyślnie, powinieneś uzyskać trzy polecenia.

Skopiuj i uruchom polecenia jako:

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

Wdrażaj sieć POD

Następnym krokiem jest wdrożenie sieci POD. W tym przewodniku użyjemy AWS VPC CNI dla Kubernetes.

Użyj polecenia jako:

sudo kubectl zastosuj -f https: // surowe.Githubusercontent.COM/AWS/Amazon-VPC-CNI-K8s/V1.8.0/config/v1.8/AWS-K8S-CNI.Yaml

Po zakończeniu upewnij się, że klaster jest uruchomiony, uruchamiając polecenie:

sudo kubectl klaster-info

Byłoby najlepiej, gdybyś miał wyjście, jak pokazano:

Kubernetes Płaszczyzna sterująca działa na stronie https: // 192.168.43.29: 6443
Coredns działa na stronie https: // 192.168.43.29: 6443/API/v1/nazwy/kube-system/usługi/kube-DN: DNS/Proxy

Aby pokazać wszystkie działające węzły, użyj polecenia:

sudo kubectl zdobądź węzły

Wdrażać aplikację

Pozwól nam wdrożyć aplikację MySQL i ujawnij usługę w porcie 3306. Użyj polecenia, jak pokazano:

sudo kubectl Apply -f https: // k8s.IO/Przykłady/aplikacja/mysql/mysql-wdrażanie.Yaml
sudo kubectl Expose wdrożenie mysql --port = 3306 --name = mysql-server

Aby pokazać listę wdrożeń, użyj polecenia:

Kubectl otrzymuje wdrożenia

Aby uzyskać informacje o kapsule, użyj polecenia:

sudo kubectl opisuje strąki

Podsumować

Kubernetes to solidne narzędzie do wdrażania i zarządzania kontenerami. Ten samouczek tylko zarysowuje powierzchnię Kubernetes i jej możliwości.