Samouczek Kubernetes - kompleksowy przewodnik dla Kubernetes

Ten blog poświęcony samouczkowi Kubernetes przeprowadzi Cię przez wszystkie koncepcje systemu orkiestracji kontenerów w praktyczny sposób.

Kubernetes to platforma, która eliminuje ręczne procesy związane z wdrażaniem aplikacji kontenerowych. W tym blogu dotyczącym samouczka Kubernetes omówisz wszystkie koncepcje związane z tym rozwiązaniem do zarządzania wieloma kontenerami.



W tym samouczku zostaną omówione następujące tematy:



Teraz, zanim przejdę do przodu w tym blogu, pozwolę sobie pokrótce poinformować Cię o konteneryzacji.

Tak więc, zanim powstały kontenery, programiści i testerzy zawsze toczyli między sobą sprzeczkę. Zwykle działo się tak, ponieważ to, co działało po stronie programistów, nie działało po stronie testowej. Obie istniały w różnych środowiskach. Teraz, aby uniknąć takich scenariuszy, wprowadzono kontenery, dzięki czemu zarówno deweloperzy, jak i testerzy byli na tej samej stronie.



Problem stanowiła również łączna obsługa dużej liczby kontenerów. Czasami podczas uruchamiania kontenerów, po stronie produktu, poruszano kilka problemów, których nie było na etapie rozwoju. W tego rodzaju scenariuszach wprowadzono system orkiestracji kontenerów.

Zanim zagłębię się w system orkiestracji, pozwól mi tylko szybko wymienić wyzwania, przed którymi stoją bez tego systemu.



Samouczek Kubernetes: wyzwania bez aranżacji kontenerów

Wyzwania bez orkiestracji kontenerów - samouczek Kubernetes - Edureka

Jak widać na powyższym diagramie, gdy wiele usług działa w kontenerach, możesz chcieć skalować te kontenery. W dużych branżach jest to naprawdę trudne. Dzieje się tak, ponieważ podniosłoby to koszty utrzymania usług i utrudniłoby ich równoległe prowadzenie.

Teraz, aby uniknąć ręcznego konfigurowania usług i sprostać wyzwaniom, potrzebne było coś dużego. W tym miejscu pojawia się Container Orchestration Engine.

Ten silnik pozwala nam organizować wiele kontenerów w taki sposób, że wszystkie maszyny bazowe są uruchamiane, kontenery są sprawne i rozproszone w środowisku klastrowym. W dzisiejszym świecie istnieją głównie dwa takie silniki: Gubernatorzy & Docker Swarm .

Samouczek Kubernetes: Kubernetes vs Docker Swarm

Gubernatorzy i Docker Swarm są wiodącymi narzędziami do orkiestracji kontenerów na dzisiejszym rynku. Dlatego zanim użyjesz ich w prod, powinieneś wiedzieć, czym dokładnie są i jak działają.

Co więcej, na blogu zamierzam zagłębić się w Kubernetes, ale aby dowiedzieć się o Dockerze, możesz kliknąć .

Jak możesz odnieść się do powyższego obrazu, Kubernetes w porównaniu z Docker Swarm posiada świetną, aktywną społeczność i umożliwia automatyczne skalowanie w wielu organizacjach. Podobnie, Docker Swarm ma łatwy do uruchomienia klaster w porównaniu do Kubernetes, ale jest ograniczony do możliwości Docker API.

Cóż, ludzie, to nie jedyne różnice między tymi najlepszymi narzędziami. Jeśli chcesz poznać szczegółowe różnice między tymi narzędziami do aranżacji kontenerów, możesz kliknąć

rosnąco c ++
Chcesz dowiedzieć się więcej o Kubernetes?

Gdybym mógł wybrać między tymi dwoma, to musiałby to być Kubernetes, ponieważ kontenery muszą być zarządzane i połączone ze światem zewnętrznym w celu wykonywania zadań, takich jak planowanie, równoważenie obciążenia i dystrybucja.

Ale jeśli myślisz logicznie, Docker Swarm byłby lepszą opcją, ponieważ działa na szczycie Dockera, prawda? Na twoim miejscu na pewno nie wiedziałbym, jakiego narzędzia użyć. Ale hej, Kubernetes jest niekwestionowanym liderem na rynku, a także działa na kontenerach Docker z lepszymi funkcjami.

Teraz, kiedy zrozumiałeś potrzebę Kubernetesa, to dobry czas, że ci powiem Co to jest Kubernetes?

Samouczek Kubernetes: Co to jest Kubernetes?

jest open-source system, który obsługuje planowanie kontenerów w klastrze obliczeniowym i zarządza obciążeniami, aby zapewnić ich działanie zgodnie z zamierzeniami użytkownika. Będąc pomysłem Google, oferuje doskonałą społeczność i doskonale współpracuje ze wszystkimi dostawcami usług w chmurze, aby zostać rozwiązanie do zarządzania wieloma kontenerami.

Samouczek Kubernetes: Funkcje Kubernetes

Funkcje Kubernetes są następujące:

  • Automatyczne planowanie: Kubernetes zapewnia zaawansowany harmonogram do uruchamiania kontenerów w węzłach klastra w oparciu o wymagania dotyczące zasobów i inne ograniczenia, bez poświęcania dostępności.
  • Zdolności samoleczenia: Kubernetes umożliwia wymianę i zmianę harmonogramu kontenerów, gdy węzły umierają. Zabija również kontenery, które nie reagują na zdefiniowaną przez użytkownika kontrolę stanu, i nie reklamuje ich klientom, dopóki nie będą gotowe do wyświetlenia.
  • Automatyczne wdrażanie i wycofywanie: Kubernetes wprowadza zmiany w aplikacji lub jej konfiguracji, jednocześnie monitorując stan aplikacji, aby upewnić się, że nie zabije ona wszystkich instancji w tym samym czasie. Jeśli coś pójdzie nie tak, z Kubernetesem możesz cofnąć zmianę.
  • Skalowanie poziome i równoważenie obciążenia: Kubernetes może skalować w górę i w dół aplikację zgodnie z wymaganiami za pomocą prostego polecenia, przy użyciu interfejsu użytkownika lub automatycznie na podstawie użycia procesora.

Samouczek Kubernetes: Architektura Kubernetes

Architektura Kubernetes składa się z następujących głównych komponentów:

  • Węzły główne
  • Węzły Worker / Slave

Omówię każdy z nich jeden po drugim. Więc na początek zacznijmy od zrozumienia Węzeł główny .

Węzeł główny

Węzeł główny jest odpowiedzialny za zarządzanie klastrem Kubernetes. Jest to głównie punkt wyjścia dla wszystkich zadań administracyjnych. W klastrze może znajdować się więcej niż jeden węzeł główny do sprawdzania odporności na uszkodzenia.

Jak widać na powyższym diagramie, węzeł główny ma różne komponenty, takie jak serwer API, menedżer kontrolera, harmonogram i ETCD.

  • Serwer API: Serwer API jest punktem wejściowym dla wszystkich poleceń REST używanych do sterowania klastrem.
  • Kierownik kontrolera: To demon, który reguluje klaster Kubernetes i zarządza różnymi niekończącymi się pętlami sterowania.
  • Planista: Harmonogram planuje zadania do węzłów podrzędnych. Przechowuje informacje o wykorzystaniu zasobów dla każdego węzła podrzędnego.
  • ETCD: ETCD to prosty, rozproszony, spójny magazyn klucz-wartość. Jest używany głównie do współdzielonej konfiguracji i wykrywania usług.

Węzły Worker / Slave

Węzły robocze zawierają wszystkie usługi niezbędne do zarządzania siecią między kontenerami, komunikacji z węzłem głównym i przypisywania zasobów do zaplanowanych kontenerów.

Jak widać na powyższym diagramie, węzeł roboczy ma różne komponenty, takie jak kontener Docker, Kubelet, Kube-proxy i Pods.

  • Kontener Dockera: Docker działa na każdym z węzłów roboczych i uruchamia skonfigurowane zasobniki
  • Kubelet: Kubelet pobiera konfigurację Poda z serwera API i zapewnia, że ​​opisane kontenery działają.
  • Kuba proxy: Kube-proxy działa jako sieciowy serwer proxy i moduł równoważenia obciążenia dla usługi w pojedynczym węźle roboczym
  • Strąki: Pod to jeden lub więcej kontenerów, które logicznie działają razem w węzłach.

Jeśli chcesz uzyskać szczegółowe wyjaśnienie wszystkich składników architektury Kubernetes, możesz skorzystać z naszego blog na

Chcesz uzyskać certyfikat w Kubernetes?

Samouczek Kubernetes: Studium przypadku Kubernetes

Y ahoo! JAPONIA jest dostawcą usług internetowych z siedzibą w Sunnyvale w Kalifornii. Ponieważ celem firmy była wirtualizacja sprzętu, firma zaczęła używać OpenStack w 2012 roku. Ich środowisko wewnętrzne zmieniło się bardzo szybko. Jednak ze względu na postęp w technologii chmury i kontenerów, firmie zależało na capamożliwość uruchamiania usług na różnych platformach.

Problem: Jak utworzyć obrazy dla wszystkich wymaganych platform z jednego kodu aplikacji i wdrożyć te obrazy na każdej platformie?

Dla lepszego zrozumienia zapoznaj się z poniższym obrazem. Gdy kod zostanie zmieniony w rejestrze kodu, obrazy od podstaw, kontenery platformy Docker i obrazy maszyn wirtualnych są tworzone przez narzędzia ciągłej integracji, umieszczane w rejestrze obrazów, a następnie wdrażane na każdej platformie infrastruktury.


Skoncentrujmy się teraz na przepływie pracy kontenerów, aby zrozumieć, w jaki sposób używali Kubernetes jako platformy wdrożeniowej. Zapoznaj się z poniższym obrazem, aby rzucić okiem na architekturę platformy.

Instancje OpenStack są używane, a na nich Docker, Kubernetes, Calico itp., Aby wykonywać różne operacje, takie jak Container Networking, Container Registry i tak dalej.

Kiedy masz wiele klastrów, trudno jest nimi zarządzać, prawda?

Chcieli więc tylko stworzyć prosty, podstawowy klaster OpenStack, aby zapewnić podstawową funkcjonalność potrzebną Kubernetes i ułatwić zarządzanie środowiskiem OpenStack.

Dzięki połączeniu przepływu pracy tworzenia obrazu i Kubernetes, stworzyli poniższy zestaw narzędzi, który ułatwia od wypychania kodu do wdrożenia.


Ten rodzaj łańcucha narzędzi zapewniał uwzględnienie wszystkich czynników związanych z wdrożeniem produkcyjnym, takich jak obsługa wielu dzierżawców, uwierzytelnianie, pamięć masowa, sieć, wykrywanie usług.

W ten sposób ludzie Wieśniak! JAPONIA zbudował łańcuch narzędzi automatyzacji do wdrażania kodu „jednym kliknięciem” na platformie Kubernetes działającej na platformie OpenStack, z pomocą Google i Solinea .

Samouczek dla gubernatorów: praktyczne

W tym artykule praktycznym pokażę, jak utworzyć wdrożenie i usługę. Korzystam z instancji Amazon EC2, aby używać Kubernetes. Cóż, Amazon wymyślił Usługa Amazon Elastic Container Service dla Prezesi (Amazon EKS) , co pozwala im bardzo szybko i łatwo tworzyć klastry Kubernetes w chmurze. Jeśli chcesz dowiedzieć się więcej na ten temat, możesz zapoznać się z blogiem

Krok 1: Pierwszy utwórz folder w którym utworzysz swoje wdrożenie i usługę. Następnie użyj edytora i otwórz plik stanowiska .

mkdir handsOn cd handsOn vi Deploy.yaml

Krok 2: Po otwarciu pliku wdrożenia podaj wszystkie specyfikacje aplikacji, którą chcesz wdrożyć. Tutaj próbuję wdrożyć httpd podanie.

apiVersion: apps / v1 # Definiuje rodzaj wersji API: Deployment #Kinds parametr definiuje rodzaj pliku, tutaj jest to Deployment metadata: name: dep1 # Zapisuje nazwę specyfikacji wdrożenia: # W Specyfikacjach wymieniasz wszystkie specyfikacje replik wdrożeniowych: 3 # Liczba replik wynosiłaby 3 selector: matchLabels: app: httpd # Nazwa etykiety, która będzie przeszukiwana to httpd template: metadata: labels: app: httpd # Nazwa szablonu to httpd spec: # Under Specyfikacje, wymieniasz wszystkie specyfikacje kontenerów: - nazwa: httpd #Nazwa kontenerów to httpd obraz: httpd: najnowszy # Obraz, który należy pobrać to httpd: najnowsze porty: - port kontenera: 80 # Aplikacja byłby wystawiony na porcie 80

Krok 3: Po zapisaniu pliku stanowiska zastosuj wdrożenie za pomocą następującego polecenia.

kubectl apply -f Deploy.yaml

Tutaj -f jest nazwą flagi używaną dlaton plikNazwa.

marionetka vs szef kuchni vs doker

Krok 4: Teraz, po zastosowaniu wdrożenia, pobierz listę uruchomionych podów.

kubectl dostaje strąki o szerokości -o

Tutaj, -o wide są używane, aby wiedzieć, w którym węźle działa wdrożenie.

Krok 5: Po utworzeniu stanowiska należy teraz utworzyć usługę. W tym celu ponownie użyj edytora i otwórz puste miejsce usługa. plik yaml .

vi service.yaml

Krok 6: Po otwarciu pliku usługi podaj wszystkie specyfikacje usługi.

apiVersion: v1 # Definiuje rodzaj wersji API: Service #Kinds parametr określa, jaki to jest rodzaj pliku, tutaj jest to Service metadata: name: netsvc # Zapisuje nazwę specyfikacji usługi: # Pod Specyfikacjami podajesz wszystkie specyfikacje dla typu usługi: Selektor NodePort: aplikacja: porty httpd: -protocol: port TCP: 80 port docelowy: 8084 # docelowy numer portu to 8084

Krok 7: Po zapisaniu pliku usługi zastosuj plik usługi za pomocą następującego polecenia.

kubectl apply -f service.yaml

Krok 8: Teraz, po zastosowaniu usługi, aby sprawdzić, czy usługa jest uruchomiona, czy nie, użyj następującego polecenia.

kubectl pobierz svc

Krok 9: Teraz, aby zobaczyć specyfikację usługi i sprawdzić, który to punkt końcowypowiązany z, użyj następującego polecenia.

kubectl opisuje svc

Krok 10: Teraz, ponieważ używamy instancji amazon ec2, aby pobrać stronę internetową i sprawdzić dane wyjściowe, użyj następującego polecenia.

curl adres IP

Jeśli uważasz, że ten blog samouczka Kubernetes jest odpowiedni, zapoznaj się z autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie.

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy w „ Samouczek Kubernetes ”I skontaktuję się z Tobą.