Jak zmienić domyślną przestrzeń nazw w Kubectl?

Jak zmienić domyślną przestrzeń nazw w Kubectl?

Dowiesz się, jak zmienić domyślną przestrzeń nazw w Kubectl w tym poście. Wszystkie zasoby Kubernetes są zorganizowane w przestrzeni nazw, a przestrzenie nazw pozwalają oddzielić obawy dotyczące zasobów udostępnianych różnymi projektami. Jeśli przestrzeń nazw nie jest określona, ​​wszystkie zasoby są tworzone w domyślnej przestrzeni nazw, a to dotyczy wszystkich instrukcji skierowanych do twojego klastra. Jeśli argument -n nie jest używany dla przestrzeni nazw w poleceniu Kubectl, Kubernetes poda wyjście z zasobów w domyślnej przestrzeni nazw.

Przestrzeni nazw to funkcja Kubernetes, która pozwala podzielić grupy zasobów w klastrze. W przestrzeni nazw nazwy zasobów muszą być unikalne, ale nie między przestrzeniami nazw. Zakoportowanie oparte na przestrzeni nazw ma zastosowanie tylko do elementów o nazwach (takich jak wdrożenia i usługi), a nie do obiektów całego klastra (e.G., StorageClass, węzły, trwałe itp.).

„Domyślna” przestrzeń nazw

Po wyjęciu z pudełka większość wydawnictw Kubernetes zawiera przestrzeń nazw o nazwie „domyślna” w klastrze. Istnieją trzy przestrzenie nazw w Kubernetes: Domyślne, Kube-System i Kube-Public. Kube-Public nie jest obecnie używany bardzo często, a system Kube-system jest zwykle ignorowany, szczególnie w systemie regulowanym, takim jak Google Kubernetes Engine (GKE). W rezultacie domyślna przestrzeń nazw zostanie użyta do tworzenia twoich usług i aplikacji. Nie ma nic niezwykłego w tej przestrzeni nazw, poza tym, że oprzyrządowanie Kubernetes jest skonfigurowane do używania go poza pudełkiem i nie można go usunąć. Jest doskonały do ​​rozpoczęcia pracy i mniejszych systemów produkcyjnych, ale nie nadaje się do większych. Wynika to z faktu, że zespołowi dość łatwo jest nieumyślne nadpisanie lub zakłócenie innej usługi, nie rozpoznając jej. Zamiast tego podziel swoje usługi na strawne bity, tworząc wiele przestrzeni nazwisk.

Zanim przejdziesz:

Na początek uruchom klaster minikube, który jest już zainstalowany na Ubuntu 20.04 LTS System operacyjny. Aby uruchomić miniKube, wpisz załączone polecenie w wierszu poleceń:

$ minikube start

Wyświetl przestrzenie nazw

Możesz uzyskać listę wszystkich przestrzeni nazw w klastrze, wpisując następujące polecenie.

Jeśli element nie ma innego przestrzeni nazw, jest to domyślna przestrzeń nazw. Przestrzeń nazw Kube-System zawiera obiekty zaprojektowane specjalnie przez system Kubernetes. Z drugiej strony przestrzeń nazw Kube-Public istnieje automatycznie i jest dostępna dla wszystkich rodzajów użytkowników. Ta przestrzeń nazw służy do użytku klastra, jeśli niektóre zasoby muszą być publicznie dostępne i czytelne w całym klastrze. Publiczny aspekt przestrzeni nazwy jest jedynie zaleceniem, a nie mandatem. Obiekty dzierżawy połączone z każdym węzłem są przechowywane w przestrzeni nazw węzeł kube. Kubelet może nadawać bicie serca do płaszczyzny sterowania przez dzierżawy węzłów, umożliwiając płaszczyźnie sterowania wykrycie awarii węzła.

Definiowanie przestrzeni nazw żądania

Należy pamiętać, że parametr przestrzeni -nameSpace jest specjalnie używany do ustawiania przestrzeni nazw dla bieżącego żądania.

Korzystając z poniższego polecenia, możesz uzyskać listę wszystkich kapsuł z określonej przestrzeni nazw.

Wybór preferowanej przestrzeni nazw

W przypadku wszelkich dalszych poleceń Kubectl w tym kontekście możesz zapisać przestrzeń nazw trwale.

To polecenie wyświetli obecnie używaną przestrzeń nazw.

Nie każdy obiekt ma przestrzeń nazw

Pods, usługi, kontrolery replikacji i inne zasoby Kubernetes są zorganizowane w przestrzeniach nazwisk. Z drugiej strony zasoby przestrzeni nazw nie są zawarte w przestrzeni nazw. Węzły i trwałe rozwiązania to zasoby niskiego poziomu, które nie są w żadnej przestrzeni nazw. Aby zobaczyć, które zasoby Kubernetes są używane w przestrzeni nazw, patrz polecenie poniżej:

Skorzystaj z następującego polecenia, aby zobaczyć, które zasoby Kubernetes nie są używane w przestrzeni nazw:

Przestrzenie nazw DNS

Wpis DNS jest tworzony dla usługi po jej utworzeniu. Format tego wpisu jest . Jeśli kontener używa wyłącznie nazwy serwisowej>, według SVC rozwiąże się do usługi lokalnej przestrzeni nazw.grupa.lokalny. Jeśli chcesz użyć tej samej konfiguracji w wielu przestrzeniach nazw, takich jak ocena, rozwój i produkcja, byłoby to krytyczne. Musisz użyć w pełni kwalifikowanej nazwy domeny, jeśli chcesz dotrzeć do przestrzeni nazwisk.

Kiedy powinieneś używać kilku przestrzeni nazw?

Przestrzenie nazw są przeznaczone do sytuacji z dużą liczbą użytkowników rozłożonych na kilka zespołów lub projektów. Nie musisz budować ani myśleć o przestrzeni nazw dla klastrów z kilkoma do dziesiątek użytkowników. Gdy potrzebujesz funkcji, które nadają przestrzeni nazw, zacznij je używać.

Przestrzenie nazw dostarczają nazwisk do miejsca do przejścia. W przestrzeni nazw nazwy zasobów muszą być unikalne, ale nie między przestrzeniami nazw. Przestrzenie nazw są środkiem dla wielu użytkowników do udostępniania zasobów klastrów i oddzielają zasoby, które mają tę samą przestrzeń nazw.

Wniosek

Nauczyłeś się, jak zmienić domyślną przestrzeń nazw Kubernetes za pomocą wiersza poleceń Kubectl w tym poście. Domyślna przestrzeń nazw jest przypisana do domyślnej przestrzeni nazw podczas tworzenia klastra AKS lub lokalnego Kubernetes. Jeśli wszystkie twoje obciążenia nie są w domyślnej przestrzeni nazw, może to być kłopot.