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:
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:
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.