Typ Strategicznego Merge próbuje „zrobić dokładną rzecz” podczas łączenia podanej specyfikacji z bieżącą specyfikacją. Bardziej wyraźnie próbuje połączyć zarówno tablice, jak i obiekty. Na przykład określenie łatki, która zawiera pojedynczą lub nową zmienną w specyfikacji kontenera POD, powoduje tę zmienną uwzględnioną w bieżących zmiennych, nie nadpisując. Usunięcie elementu tablicy za pomocą strategicznej łatki scalania jest trudniejsze, co wymaga użycia zamówień scalania.
Podobnie jak podejście strategiczne, Metoda Patch Json Metge bierze częściową specyfikację Kubernetes jako wejście i utrzymuje obiekty łączące. W ten sposób jest dość odmienny od powyższego podejścia, ponieważ obsługuje jedynie wymianę tablic. Korzystając z tego podejścia, musisz przesyłać strumieniowo pełne specyfikacje dla wszystkich kontenerów; Jeśli potrzebujesz zmodyfikowania dowolnego kontenerowania Propertyon na CLI, możesz wybrać łatkę JSON SCERGE za pośrednictwem kubectl Patch.
Z drugiej strony metoda Patch JSON wykorzystuje ilustrację JSON odmian, które chcesz zrobić z zasobem. Patch JSON to bardziej solidny i wydajny sposób na stwierdzenie modyfikacji, które chcesz wprowadzić.
Wymagania wstępne
Potrzebujemy klastra Kubernetes lub konfiguracji CLI Kubectl do interakcji z klastrem. Jeśli nie masz klastra, musisz go wygenerować za pomocą minikupu. Podczas pracy z poleceniami Patch w Kubernetes musimy zainstalować klaster minikupe w systemie, aby uruchomić Kubernetes w Linux.
Polecenie kubectl łatki
Przyjdźmy ilustrujmy działanie poleceń łat za pomocą poleceń lub instrukcji Kubectl.
Z paska wyszukiwania aplikacji napisz „Terminal” lub naciśnij jednocześnie klawisze klawiatury „CTRL+Alt+T”. Teraz napisz polecenie „Minikube Start” w terminalu i poczekaj chwilę, aż się uda.
$ minikube start
Podczas pracy z poleceniami Patch musimy najpierw wygenerować wdrożenie w Kubernetes. W tym celu używamy wdrożenia dotykowego.Polecenie YAML, aby utworzyć plik w Ubuntu 20.04, a słowo kluczowe dotykowe służy do generowania pliku.
$ Touch wdrożenie1.Yaml
Zapisz i wykonaj plik polecenia Kubectl. Następnie wyświetlisz plik, który jest utworzony pomyślnie.
Poniżej wspomniany plik konfiguracyjny wdrażania ma dwie kopie lub repliki, a każda kopia jest kapsułką zawierającą jeden kontener.
Aby utworzyć wdrożenie, używamy „Apply -f” z nazwą pliku, aby skutecznie utworzyć wdrożenie.
$ kubectl Zastosuj -F wdrożenie1.Yaml
Aby wyświetlić informacje lub sprawdź POD połączone z Twoim wdrożeniem, używamy polecenia GET PODS, tak jak na poniższym zrzucie ekranu:
Po wykonaniu powyższego polecenia wyświetlisz nazwę, gotowy, status, ponowne uruchomienie i wiek wszystkich kapsułek na komputerze.
Należy pamiętać, że nazwa określa aktualnie działające kapsuły. Po kilku minutach zobaczysz, że te strąki zostaną zakończone i zamieniane przez nowe.
$ kubectl get PODS
Na tym etapie każda POD zawiera jeden pojemnik, który wykonuje obraz Nginx. Teraz, jeśli chcesz, aby każdy kapsał pomieścił dwa kontenery: jeden, który wykonuje Nginx i jeden, który wykonuje Redis. Dla naszego poniższego polecenia wygeneruj plik łatki.
$ Touch Patchfile.Yaml
Po wykonaniu tego polecenia możesz następnie wyświetlić Patchfile za pomocą „.rozszerzenie YAML ”.
Po zapisaniu i otwarciu pliku możesz wyświetlić, że „PatchFile” zawiera pożądaną treść.
Teraz naszym następnym celem jest załatanie wdrożenia. Poniższe polecenie jest bardzo pomocne w rozmieszczeniu łatania.
Aby wyświetlić załatane wdrożenie, musisz wykonać poniższe polecenie. Wynik pokazuje, że podspec we wdrażaniu zawiera dwa kontenery:
Poniższe polecenie pokazuje, czy kapsuły są powiązane z załatanym wdrożeniem, czy nie. W tym wyjściu aktualnie działające kapsuły zmieniły nazwy z kapsułów, które wcześniej wykonywały. Wdrożenie zakończyło poprzednie kapsuły i stworzyło dwa inne nowe kapsuły, które są zgodne z zaktualizowaną specyfikacją wdrażania.
$ kubectl get PODS
Wniosek:
Więc tutaj w tym artykule opracowaliśmy koncepcję Patch Command w Kubernetes. Użyliśmy łatki Kubectl, aby zmienić konfigurację obiektu wdrażania na żywo. Mam nadzieję, że możesz teraz zatrzymać całą koncepcję łatki w Kubernetes.