Wprowadzenie do Kubernetesa | Co to jest Kubernetes
Poznaj podstawowe pojęcia dotyczące Kubernetes
Wstęp
Witamy we wstępie do kursu Kubernetes. Kubernetes, znany również jako k8s lub kube, to najpopularniejsze w branży narzędzie do orkiestracji kontenerów, będące produktem Google. Ten samouczek Kubernetes składa się z serii artykułów na temat Kubernetes. W pierwszej części omówimy czym jest Kubernetes i podstawowe koncepcje Kubernetesa.
Ten kurs jest przeznaczony dla absolutnie początkujących. Nie musisz posiadać żadnej wiedzy wstępnej, aby nauczyć się tej technologii. Przeprowadzimy Cię przez wszystkie podstawy Kubernetes, abyś mógł zrozumieć pojęcia.
Zanim zaczniesz korzystać z Kubernetes, zapoznaj się z podstawową wiedzą na temat platformy Docker i kontenerów.
Co to jest Docker?
Docker umożliwia pakowanie i uruchamianie aplikacji w kontenerze, który stanowi luźno izolowane środowisko. Ze względu na izolację i bezpieczeństwo można obsługiwać wiele kontenerów na jednym hoście.
Aby uruchomić kilka kontenerów w tym samym systemie operacyjnym, Docker wykorzystuje izolację zasobów w jądrze systemu operacyjnego. Zwykle ludzie porównują Dockera z maszynami wirtualnymi (VM).
Z drugiej strony maszyny wirtualne zawierają cały system operacyjny z kodem wykonywalnym na warstwie abstrakcji fizycznych zasobów sprzętowych.
Co to jest kontener?
Obraz kontenera to gotowy do uruchomienia pakiet oprogramowania, który zawiera wszystko, czego program potrzebuje do wykonania, w tym kod i wszelkie potrzebne czasy działania, biblioteki aplikacji i systemu oraz wartości domyślne wszelkich ważnych ustawienia.
Aplikacje są oddzielane od podstawowej architektury hosta za pomocą kontenerów. Jak pokazano na poniższym diagramie, możemy mieć wiele kontenerów na silniku Dockera, korzystając z podstawowej maszyny. Ułatwia to wdrażanie w różnych scenariuszach systemów operacyjnych lub chmur.
Rysunek 1
Kontenery pomagają firmom modernizować się, ułatwiając skalowanie i wdrażanie aplikacji. Jednak budując zupełnie nowe środowisko infrastrukturalne, kontenery stwarzały dodatkowe problemy i złożoność.
Zarówno duże, jak i małe organizacje zajmujące się oprogramowaniem codziennie wdrażają tysiące instancji kontenerów, co stanowi dla nich wyzwanie w zakresie skalowalności. Jak więc to ściągają?
Co to jest orkiestracja kontenerów?
- Orkiestracja kontenerów dotyczy zarządzania cyklami życia kontenerów, szczególnie w dużych, dynamicznych środowiskach. Orkiestracja kontenerów jest używana przez zespoły programistyczne do kontrolowania i automatyzowania różnych zadań związanych z zarządzaniem kontenerami.
- Orkiestracja kontenerów działa w każdym kontekście, w którym używane są kontenery. Może pomóc we wdrażaniu tego samego programu w kilku środowiskach bez konieczności jego przepisywania.
Narzędzia do orkiestracji kontenerów
Technologie orkiestracji kontenerów oferują platformę do kontrolowania kontenerów i architektury mikrousług. Zarządzanie cyklem życia kontenera można zrealizować za pomocą różnych rozwiązań do orkiestracji kontenerów. Kubernetes, Docker Swarm i Apache Mesos to trzy popularne rozwiązania/narzędzia.
Docker Swarm to natywne narzędzie Dockera, które jest bardzo łatwe w konfiguracji i konfiguracji. Kubernetes wymaga szeregu ręcznych interwencji w celu skonfigurowania swoich komponentów, takich jak etcd, flanel i silnik dokujący.
Kubernetes dominuje w branży ze względu na różne zalety i funkcje w porównaniu z innymi narzędziami.
Czym jest Kubernetes?
Kubernetes to technologia orkiestracji kontenerów typu open source, która została pierwotnie opracowana przez firmę Google w celu automatyzacji wdrażania, skalowania i administrowania aplikacjami kontenerowymi.
Kubernetes ułatwia wdrażanie i zarządzanie aplikacjami opartymi na architekturze mikrousług. Osiąga to poprzez utworzenie warstwy abstrakcji na szczycie klastra, umożliwiając zespołom programistycznym płynne wdrażanie aplikacji, podczas gdy Kubernetes obsługuje głównie następujące zadania:
- Kontrolowanie i zarządzanie wykorzystaniem zasobów przez aplikację.
- Automatyczne równoważenie obciążenia żądań pomiędzy wieloma instancjami aplikacji.
- Monitorowanie wykorzystania zasobów i limitów zasobów, aby automatycznie powstrzymywać aplikacje przed zużywaniem nadmiernych ilości zasobów i wznawiać je ponownie.
- Jeśli zasoby hosta wyczerpią się lub host umrze, realną opcją jest przeniesienie instancji aplikacji z jednego hosta na drugi.
- Po dodaniu nowego hosta do klastra automatycznie udostępniane są dodatkowe zasoby.
Dlaczego rynek rekomenduje Kubernetes
Kubernetes, pierwsza inicjatywa Cloud Native Cloud Foundation (CNCF) i fundacja Google, to najszybciej rozwijający się projekt oprogramowania open source po Linuksie.
Dlaczego tak wiele przedsiębiorstw polega obecnie na Kubernetesie, aby zaspokoić swoje potrzeby w zakresie orkiestracji kontenerów? Istnieje wiele powodów:
- Przenośność i elastyczność: Kubernetes jest niezwykle elastyczny, ponieważ może działać w szerokim zakresie ustawień infrastruktury i środowiska. Większość innych orkiestratorów nie ma takiej elastyczności; są one zablokowane w określonych środowiskach wykonawczych lub infrastrukturach.
- Open Source: CNCF odpowiada za Kubernetes, który jest projektem całkowicie otwartym i kierowanym przez społeczność. Ma wielu znaczących sponsorów korporacyjnych, ale żadna pojedyncza firma nie jest „właścicielem” platformy ani nie ma wyłącznej kontroli nad jej rozwojem.
- Zgodność z wieloma chmurami: Kubernetes może hostować obciążenia w jednej chmurze, a także obciążenia rozproszone w wielu chmurach. Kubernetes może również bez wysiłku skalować swoje środowisko z jednej chmury do drugiej. Podczas gdy inni koordynatorzy mogą obsługiwać architektury wielochmurowe, Kubernetes prawdopodobnie wykracza poza możliwości adaptacji w wielu chmurach.
- Lider Markera: Prawie wszyscy korzystają z Kubernetesa. Według ankiety REDHAT Kubernetes jest powszechnie używany przez klientów (88%), szczególnie w sytuacjach produkcyjnych (74%).
Architektura Kubernetesa
Kubernetes jest przykładem systemu rozproszonego, który został dobrze zaprojektowany. Uważa, że wszystkie maszyny w klastrze stanowią część pojedynczej puli zasobów.
Kubernetes, jak każdy inny wyrafinowany system rozproszony, składa się z dwóch warstw: węzłów głównych i węzłów roboczych.
Węzeł główny lub Węzeł główny składa się z aplikacji Control Plane i węzłów roboczych. Klaster Kubernetes jest tworzony przez zbiór węzłów głównych i roboczych.
Rysunek 2
Kubernetes wprowadza wiele terminologii opisującej strukturę aplikacji. Przejdziemy przez każdy semestr.
Komponenty Kubernetesa
Węzeł główny/główny i węzeł roboczy składają się z własnych komponentów, które zapewniają płynne działanie orkiestracji.
Sterowanie samolotem
Płaszczyzna sterowania to miejsce, do którego administratorzy i użytkownicy mogą zarządzać różnymi węzłami. Otrzymuje polecenia za pośrednictwem wywołań HTTP lub łącząc się z systemem i uruchamiając skrypty wiersza poleceń. Reguluje interakcję Kubernetesa z aplikacjami, jak sama nazwa wskazuje.
Serwer API
Serwer API udostępnia klasterowi Kubernetes interfejs REST. Wszystkie działania na podach, usługach i innych obiektach są wykonywane programowo poprzez komunikację z dostarczonymi punktami końcowymi.
Planista
Osoba planująca jest odpowiedzialna za przydzielanie zadań różnym węzłom. Monitoruje pojemność zasobów i gwarantuje, że wydajność węzła roboczego mieści się w akceptowalnych granicach.
Menedżer kontrolerów
Menedżer kontrolera Kubernetes to usługa zarządzająca podstawowymi pętlami kontrolnymi Kubernetes. Odpowiedzialność za zapewnienie prawidłowego funkcjonowania wspólnego stanu klastra należy do obowiązków.
itd
Kubernetes wykorzystuje etcd, rozproszony magazyn klucz-wartość, do udostępniania informacji o ogólnym stanie klastra.
Węzeł
Węzeł to maszyna, fizyczna lub wirtualna, na której działają POD-y. Płaszczyzna sterowania zarządza każdym węzłem w klastrze, a węzeł składa się z usług wymaganych do uruchamiania POD.
Strąki
Pod Kubernetes to zbiór kontenerów, którymi Kubernetes zarządza w najmniejszej skali. Pody mają jeden adres IP przypisany do wszystkich kontenerów w podach. Zasoby pamięci i magazynu kontenerów w zasobniku są udostępniane. Pod może mieć pojedynczy kontener również wtedy, gdy aplikacja ma pojedynczy proces.
Kubelet
Kubelet jest komponentem węzła roboczego. Jego zadaniem jest śledzenie strąków i ich pojemników. Dotyczy specyfikacji podów zapisanych w YAML lub JSON. Kubelet sprawdza specyfikacje strąków i określa, czy strąki są zdrowe, czy nie.
Kube-Proxy
Kube-proxy to sieciowy serwer proxy i moduł równoważenia obciążenia, który działa jako połączenie pomiędzy każdym węzłem a serwerem API. Działa na każdym węźle klastra i umożliwia łączenie się z podami zarówno wewnątrz, jak i na zewnątrz klastra.
Kubectl
Kubectl to narzędzie CLI dla Kubernetes. Służy do wdrażania aplikacji, monitorowania i kontrolowania zasobów klastra oraz przeglądania dzienników.
Z perspektywy użytkownika kubectl to panel sterowania Kubernetes. Umożliwia wykonanie wszystkich operacji Kubernetes. Z technicznego punktu widzenia Kubectl jest klientem Kubernetes API.
Wniosek
W tym artykule omówiliśmy podstawowe koncepcje orkiestracji kontenerów i architektury Kubernetes. W nadchodzących artykułach poznamy ważne kluczowe cechy Kubernetesa i instalacji Kubernetesa na jednym węźle.
Przeczytaj dalej:
- Szczegółowe wyjaśnienie funkcji Kubernetes
- Jak zainstalować Kubernetes przy użyciu Minikube w systemie CentOS Linux
- Zainstaluj klaster Kubernetes za pomocą Kubeadm w RHEL, CentOS, AlmaLinux, Rocky Linux
- Jak tworzyć kapsuły Kubernetes i zarządzać nimi w systemie Linux
Zasoby:
- https://kubernetes.io/docs/home/
- https://www.redhat.com/en/topics/containers/what-is-kubernetes

