‫W przypadku pierwszego klastra, a może nawet pierwszych
‫kilku klastrów, nie będziesz musiał się zbytnio przejmować
‫tą koncepcją przestrzeni nazw i kontekstów.
‫Ale jest to coś, o czym musisz wiedzieć,
‫że istnieje na wypadek, gdybyś musiał z niego skorzystać.
‫Przestrzenie nazw to zasadniczo wirtualne klastry lub
‫wirtualne widoki wewnątrz jednego klastra.
‫Filtruje nie tylko widok polecenia, dzięki czemu widzisz
‫tylko niektóre rzeczy podczas wpisywania
‫poleceń, ale także, przy odpowiednich wtyczkach zasad
‫sieciowych, może kontrolować sieć.
‫Jest to trochę inne niż Swarm, w którym Swarm,
‫po wyjęciu z pudełka, tworzyłbyś różne sieci nakładek i
‫wszystko było w zasadzie prywatne.
‫W Kubernetes, łączność sieciowa i kontrola aplikacji oraz ich prywatność,
‫to, co mogą zobaczyć i uzyskać do nich
‫dostęp, oraz to, co jest tam fizycznie kontrolowane, zależy
‫od wtyczki sieciowej.
‫Same przestrzenie nazw nie są powiązane z przestrzeniami nazw
‫Dockera, o których być może słyszałeś, która jest
‫tak naprawdę częścią podsystemu Linux i tak
‫działają kontenery. To nie ma z tym nic wspólnego.
‫To po prostu Kubernetes mówi: hej, w klastrze może
‫się dziać wiele rzeczy, a ja daję ci możliwość
‫tworzenia małych mini klastrów, w których ustawiasz
‫przestrzeń nazw z kontekstem, a to jest
‫twój pogląd zmiana twojego kontekstu.
‫Możesz zmienić to, co widzisz.
‫Następnie przestrzenią nazw są różne
‫segmenty do filtrowania poleceń, a także
‫potencjalnie sieć. W moim systemie tutaj, na
‫pulpicie, po prostu widzę kubectl get przestrzeni nazw i to
‫polecenie pokazuje mi 4. To rodzaj
‫standardowego standardu, który zobaczysz.
‫Domyślnie pracujesz do tej pory.
‫To jest dla domyślnej przestrzeni nazw
‫twoich aplikacji. Jedyną rzeczą, którą
‫naprawdę pokazuje, gdy wykonałeś
‫Kubectl, jest sam punkt końcowy interfejsu API Kubernetes.
‫Dopóki nie zaczniemy dodawać aplikacji, tak naprawdę niczego
‫tam nie widzieliśmy. Technicznie wszystkie te
‫rzeczy działają w tle, prawda. Właśnie dlatego kubectl otrzymuje wszystkie -
‫wszystkie przestrzenie nazw.
‫Możesz zobaczyć wszystkie kontenery API i
‫to, co nie działa w samym Kubernetes
‫z tą komendą. Jeśli spojrzę na wszystkie przestrzenie
‫nazw jednocześnie, dostanę wszystko, w tym rzeczy systemowe.
‫Jest to widok tego, jak wyglądałby na
‫minikuberze, który umieszcza wszystko we własnych zasobnikach do uruchamiania
‫samego klastra.
‫Dużo się tam dzieje.
‫Uświadomiono sobie, że gdy zwykle
‫używasz Kubernetes, wiersz poleceń domyślnie koncentruje się na
‫domyślnej przestrzeni nazw.
‫Naprawdę zobaczysz tam tylko swoje aplikacje, inne niż
‫punkt końcowy interfejsu API.
‫To dobrze, prawda. Ukrywa złożoność
‫tego, co dzieje się w tle,
‫od codziennych poleceń, ponieważ tak naprawdę nie
‫musisz tego widzieć, chyba że musisz go uaktualnić lub zmienić,
‫lub jeśli masz problem. W grze pojawia
‫się kontekst do ustawiania widoku podczas uruchamiania poleceń.
‫Kubectl robi wiele rzeczy, prawda.
‫Może łączyć się z różnymi klastrami.
‫Może zmienić uwierzytelnianie lub użytkownika, którego używasz
‫do rozmowy z klastrem, o którym nie
‫rozmawialiśmy, lub przestrzeń nazw.
‫Tak więc są te trzy części kontekstu.
‫To jest klaster, uwierzytelnianie lub użytkownik, a następnie
‫przestrzeń nazw, którą chcesz zobaczyć.
‫Wszystko, co jest domyślnie zdefiniowane
‫w pliku wewnątrz. katalog kube twojego
‫katalogu domowego.
‫Jest tam plik o nazwie config
‫i będzie to w zasadzie plik YAML wszystkich trzech części.
‫Możesz tam mieć wiele wpisów i możesz je edytować
‫w dowolny sposób.
‫Możesz mieć kilka różnych klastrów i tak długo, jak masz certyfikaty,
‫aby z nimi rozmawiać, odpowiednie uwierzytelnianie, możesz umieścić wszystkie te
‫rzeczy w tym pliku, a to jest coś, co chcesz
‫zachować w tajemnicy. To nie
‫jest coś, co naprawdę chcesz udostępnić, ponieważ
‫zazwyczaj ma klucze uwierzytelniające do
‫rozmowy z klastrem. Jeśli używasz
‫komendy kubectl config z komendą podrzędną get kontekstów, to liczba
‫mnoga, możesz w zasadzie zobaczyć dane
‫wyjściowe tego pliku. Zamiast wyrzucać go
‫na surowo, możesz zobaczyć małą ładną
‫listę tego, co ma w środku.
‫W moim przypadku mam swój standardowy Docker Desktop na
‫moim komputerze lokalnym. Ten wpis pojawia się
‫dwa razy w kilku ostatnich edycjach Docker Desktop, ponieważ zmienili
‫nazwę, więc zachowują oba w celu zachowania kompatybilności.
‫Następnie mam lokalny minikube i
‫zdalną instancję mikro K8 działających na
‫serwerze Ubuntu.
‫Więc możesz sobie wyobrazić, że gdybym
‫zarządzał wieloma innymi serwerami, niekoniecznie chcę zawsze ssh
‫na tych komputerach. Naprawdę chcę po prostu usiąść na moim komputerze lokalnym
‫i porozmawiać z tym zdalnym interfejsem API.
‫Możesz użyć komendy kubectl config z dowolną
‫z ustawionych opcji. Na pewno
‫chcesz tam sprawdzić pomoc. Istnieją jednak opcje ustawiania
‫wartości domyślnych dla każdego z nich, dzięki
‫czemu można potencjalnie zmienić użytkownika na
‫inne uwierzytelnianie. Może więc masz
‫prawa Boga zamiast tylko podzbioru poleceń, które można
‫uruchomić Kubernetes. A może zmienisz klaster,
‫z którym rozmawiasz.
‫Istnieją nawet wtyczki wiersza poleceń, jeśli rozglądasz się
‫w Google za to,
‫że możesz zobaczyć w swojej powłoce, którego kontekstu używasz.
‫Jest to przydatne, gdy kończysz zarządzanie całą grupą
‫różnych klastrów. Chcesz wiedzieć,
‫z kim teraz rozmawiam? Możesz to właściwie skonfigurować, tak
‫jak w przypadku, gdy monity o uzyskanie informacji powiedzą ci, w
‫jakiej branży się znajdujesz. Dzięki temu dowiesz się,
‫jaki masz kontekst.