Szczegółowo wyjaśniono funkcje Kubernetes
To jest kontynuacja przewodnika wprowadzenie do Kubernetes. W tym artykule poznamy ważne funkcje Kubernetesa, które pomogą Ci zrozumieć koncepcje funkcjonalne Kubernetesa na głębszym poziomie.
1. Automatyczne pakowanie do pojemników
Jest to jedna z najbardziej godnych uwagi funkcji Kubernetes. Kubernetes inteligentnie rozmieszcza kontenery w oparciu o wymagane zasoby i inne ograniczenia, bez pogarszania dostępności.
Kubernetes oferuje zarządzanie zasobami i może automatycznie określać, w jaki sposób każdy kontener w podzespole zużywa zasoby, takie jak procesor i pamięć RAM.
Automatyczne pakowanie do pojemników
2. Wykrywanie usług i równoważenie obciążenia
Wykrywanie usług i równoważenie obciążenia są świadczone jako usługi w Kubernetes. Usługi łączą Pody z siecią w spójny sposób we wszystkich klastrach. Proces określania sposobu połączenia z usługą nazywany jest wykrywaniem usług.
Kolekcja Kontenerów to POD. POD, które mają ten sam zestaw funkcji, są zgrupowane w jeden zestaw i nazywa się to usługą.
Każdemu POD zostanie przypisany adres IP i pojedyncza nazwa DNS dla usługi (zestaw POD). Dzięki tej architekturze Kubernetes będzie miał dobrze zdefiniowaną kontrolę nad siecią i komunikacją między urządzeniami POD oraz równoważenie obciążenia.
Równoważenie obciążenia i wykrywanie usług
Umieszczenie modułu równoważenia obciążenia (odwrotnego proxy, takiego jak Nginx lub HAProxy) przed zestawem instancji tworzących pojedynczą usługę jest powszechną techniką rozwiązywania problemu wykrywania usług.
Adres modułu równoważenia obciążenia (nazwa DNS lub rzadziej IP) jest znacznie bardziej wiarygodną informacją. Może być udostępniany klientom na etapach programowania lub konfiguracji i może być stały przez cały okres życia pojedynczego klienta.
Następnie kontaktowanie się z usługą o wielu instancjach nie różni się od uzyskiwania dostępu do pojedynczego punktu końcowego sieci z perspektywy klienta. Inaczej mówiąc, wykrywanie usług odbywa się całkowicie po stronie serwera.
3. Orkiestracja pamięci masowej
Użytkownicy mogą zamontować dowolny system pamięci masowej za pomocą Kubernetes, w tym pamięć lokalną, dostawców chmury publicznej i nie tylko. Nadal należy zapewnić podstawowy system przechowywania.
Dla użytkowników i menedżerów Kubernetes udostępnia interfejs API, który oddziela specyfikę sposobu dostarczania pamięci masowej od sposobu jej wykorzystania.
Istnieje kilka terminów, które należy zrozumieć na temat integracji trwałego magazynu z Kubernetesem. Są one następujące:
- Container Storage Interface (CSI): jest to standard, który umożliwia wszystkim koordynatorom kontenerów łączenie się w spójny sposób z systemami przechowywania, takimi jak Ondat. Dostawcy pamięci masowej powinni zapisać swoją warstwę integracji bezpośrednio w kodzie źródłowym Kubernetes przed wydaniem CSI. W rezultacie aktualizacje były trudne i czasochłonne, ponieważ wszelkie defekty mogły spowodować awarię Kubernetesa.
- Klasa pamięci: administratorzy mogą wstępnie zdefiniować typy pamięci, które użytkownicy Kubernetes będą mogli udostępniać i dołączać do swoich aplikacji za pomocą klasy pamięci Kubernetes.
- Wolumin trwały (PV): wolumin stały to instancja pamięci wirtualnej, która została dodana do klastra jako wolumin. PV może odwoływać się do fizycznego sprzętu pamięci masowej lub pamięci zdefiniowanej programowo, takiej jak Ondat.
- Trwałe żądanie wolumenu (PVC): jest to żądanie zapewnienia określonego rodzaju i konfiguracji magazynu.
4. Samoleczenie
Zdolność Kubernetesa do samonaprawy jest jedną z jego najbardziej atrakcyjnych funkcji. Kubernetes automatycznie przeładuje aplikację kontenerową lub komponent aplikacji, jeśli ulegnie awarii.
Możliwości orkiestracji Kubernetes mogą monitorować i w razie potrzeby zastępować kontenery w złej kondycji, w zależności od konfiguracji. Pody, czyli najmniejsze jednostki zawierające jeden lub wiele kontenerów, również mogą być naprawiane przez Kubernetes.
W procesie samonaprawy kontroler replikacji zapewnia odporność na awarie lub dostępność aplikacji, wykonując poniższe zadania.
- Jeśli kontener ulegnie awarii, Kubernetes ponownie go uruchomi.
- Jeśli jakikolwiek węzeł ulegnie awarii, Kubernetes zmienia harmonogram kontenerów w innych węzłach.
- Jeśli kontener nie odpowiada klientowi/użytkownikowi, Kubernetes zabija kontener.
Warstwy operacyjne aplikacji
5. Zautomatyzowane wdrażanie i wycofywanie
5.1. Wdrożenie
Celem firm jest wyeliminowanie przestojów aplikacji, chociaż programiści chcą aktualizować kod aplikacji. Aktualizacja aplikacji nazywa się wdrożeniem. Odbywa się to w Kubernetes przy użyciu aktualizacji stopniowych.
Dzięki stopniowemu aktualizowaniu instancji Podów o nowe, aktualizacje stopniowe umożliwiają aktualizację wdrożeń bez przestojów. Nowe Pody zostaną zaplanowane w węzłach, które mają dostępne zasoby.
Aktualizacja krocząca Kubernetes
- Aktualizacje klienta za pomocą nowej wersji POD, powiedzmy V2.
- W zestawie replik dozwolona jest tylko ta sama wersja POD. Zatem Kubernetes utworzy zestaw replik 2, do którego zostanie dodana nowa wersja POD V2 i zapewniona zostanie kontrola stanu. Gdy POD V2 będzie działać prawidłowo, zastąpi on jeden z POD V1.
- Będzie postępować tak samo i zastępuje wszystkie POD V1 POD V2.
5.2. Wycofanie
Gdy wdrożenie nie jest stabilne, na przykład gdy zawiesza się podczas zapętlania, możesz chcieć przewinąć wdrożenie. Domyślnie system zapisuje całą historię wdrożeń Wdrożenia, dzięki czemu można je wycofać w dowolnym momencie.
Na powyższym obrazku pamięć POD V1 jest przechowywana w historii, dzięki czemu można ją wycofać, jeśli wystąpi jakiś problem z wdrożeniem POD V2.
6. Mapy sekretów i konfiguracji
6.1. Sekret
Sekret to niewielki fragment poufnych danych, takich jak hasło, token lub klucz. Alternatywnie takie informacje mogą być zawarte w specyfikacji Poda lub obrazie kontenera.
Jeśli używasz Sekretu, nie musisz włączać poufnych danych do swojego kodu aplikacji. Jeśli chodzi o pracę z sekretami, należy wziąć pod uwagę dwie warstwy.
Najpierw należy stworzyć sekret, a następnie wprowadzić go do kapsuły. Zamiast umieszczać poufne dane w obrazie kontenera lub definicji Poda, bezpieczniejsze i bardziej adaptacyjne jest zachowanie ich prywatności.
6.2. Mapa konfiguracji
ConfigMap to magazyn pary klucz-wartość i obiekt API do przechowywania niepoufnych danych. ConfigMaps mogą być używane przez pody jako zmienne środowiskowe, parametry wiersza poleceń lub pliki konfiguracyjne woluminów.
Umożliwia oddzielenie konfiguracji specyficznej dla środowiska od obrazów kontenerów, co pozwala na proste przenoszenie aplikacji.
Konfiguracja ConfigMaps podzielona jest na dwa etapy. Pierwszym krokiem jest utworzenie ConfigMaps, a następnie wstrzyknięcie ich do kapsuły.
Kubernetes Secret i ConfigMap
7. Skalowanie poziome
Gdy zapotrzebowanie na obciążenie wzrasta lub maleje, Kubernetes może automatycznie zwiększyć lub zmniejszyć liczbę replik podów obsługujących zadanie.
Poziomy autoskaler podów jest zaimplementowany jako kontroler i zasób API w Kubernetes. Zachowanie kontrolera jest określane przez zasób.
Kontroler regularnie dostosowuje liczbę kopii w kontrolerze replikacji lub wdrożeniu, aby dopasować obserwowane wskaźniki, takie jak średnie wykorzystanie procesora, średnie wykorzystanie pamięci lub inne niestandardowe statystyki do celu użytkownika.
Skalowanie poziome
8. Wniosek
W tym artykule omówiliśmy koncepcyjne zrozumienie kluczowych funkcji Kubernetes. W nadchodzącym artykule szczegółowo omówimy inne podstawowe koncepcje Kubernetes, takie jak ETCD, Kube Controller Manager, Kube Scheduler itp.
Przeczytaj dalej:
- 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/tutorials/kubernetes-basics/
- https://kubernetes.io/docs/concepts/





