Si të krijoni hapësira emrash në Kubernetes
Një hapësirë emri është e dobishme kur shumë ekipe përdorin të njëjtin grup. Kjo përdoret kur ekziston mundësia e përplasjes së emrit. Mund të jetë një mur virtual midis grupimeve të shumta. Për shembull, ne nuk mund të kemi pods me të njëjtin emër në një Kubernetes Cluster, por duke përdorur Hapësirën e Emrave ne mund ta ndajmë virtualisht Cluster-in dhe të kemi pods me të njëjtin emër.
Disa nga funksionalitetet e rëndësishme të një Hapësire Emri janë si më poshtë.
- Ndihmon komunikimin pod-to-pod duke përdorur të njëjtën hapësirë emri.
- Vepron si një grup virtual që mund të ulet në krye të të njëjtit grup fizik.
- Ai siguron një ndarje logjike midis ekipeve dhe mjediseve të tyre.
Në këtë artikull, ne do të krijojmë një hapësirë emrash dhe do të krijojmë një pod në hapësirën e emrave të krijuar rishtazi. Do të shohim gjithashtu se si hapësira e emrave mund të vendoset si një hapësirë e paracaktuar e emrave.
Parakushtet
- Klusteri i Kubernetes me të paktën 1 nyje punëtore.
Nëse doni të mësoni të krijoni një grupim Kubernetes, klikoni këtu. Ky udhëzues do t'ju ndihmojë të krijoni një grup Kubernetes me 1 Master dhe 2 Nyje në Instancat AWS Ubuntu 18.04 EC2.
Çfarë do të bëjmë ne
- Krijo hapësira emrash
Krijo Hapësira emrash
Për të renditur të gjitha hapësirat e emrave të disponueshme në grupin Kubernetes, ekzekutoni komandën e mëposhtme. Mund të keni shumë hapësira emrash dhe hapësirat e emrave mund të kenë meta të dhëna të hapësirës së emrave.
kubectl get namespace #Get all namespace in the cluster
Tani le të përpiqemi të krijojmë një pod në një hapësirë të caktuar emri që nuk ekziston.
Për të krijuar një pod në hapësirën e emrave \test-env\ ekzekutoni komandën e mëposhtme.
kubectl run nginx --image=nginx --namespace=test-env #Try to create a pod in the namespace that does not exist.
Pod nuk do të krijohet në hapësirën e emrave që nuk ekziston, kështu që së pari duhet të krijojmë një hapësirë emri.
Për të krijuar një hapësirë emri \test-env\ ekzekutoni komandën e mëposhtme (k8s krijojnë hapësirën e emrave).
kubectl create namespace test-env #Create a namespace
kubectl get namespace #Get a list of namespaces
Tani kemi një hapësirë emri në të cilën duam të krijojmë një pod.
Për të krijuar një pod në hapësirën e emrave që krijuam, kaloni opsionin --namespace=test-env në komandë.
kubectl run nginx --image=nginx --namespace=test-env #Create a pod in the namespace.
Nëse përpiqeni të merrni pods pa specifikuar hapësirën e emrave, nuk do të merrni detaje të pod-it.
kubectl get pods #Get a list of pods
Për të marrë detaje të pod-it që i përket hapësirës së emrave \test-env\ përdorni komandën e mëposhtme.
kubectl get pods --namespace=test-env #Get a list of pods in the specified namespace
Nëse dëshironi të caktoni hapësirën tuaj të emrave si hapësirë të paracaktuar të emrave, në mënyrë që të mos ketë nevojë të specifikoni opsionin e hapësirës së emrave në komandë, përdorni komandën e mëposhtme.
kubectl config set-context --current --namespace=test-env #Set default namespace
Tani nuk ka nevojë të specifikoni hapësirën e emrave në komandë për të marrë detaje të pod-it.
kubectl get pods #Get a list of pods from the default namespace
Për të kaluar në hapësirën e emrave të paracaktuar, përdorni komandën e mëposhtme.
kubectl config set-context --current --namespace=default #Check the namespace to default
kubectl get pods #Get a list of pods
Për të kontrolluar se cila është hapësira e emrave të paracaktuar, përdorni komandat e mëposhtme.
kubectl config view --minify | grep namespace: #Extract the namespace from the kubernetes config file.
kubectl config set-context --current --namespace=test-env #Set default namespace in the config file.
kubectl config view --minify | grep namespace:
Kontrolloni se cilat burime të Kubernetes janë një hapësirë emri, ekzekutoni komandën e mëposhtme.
kubectl api-resources --namespaced=true #Get Kubernetes objects which can be in a namespaces
Për të parë se cilat burime të Kubernetes nuk janë në një hapësirë emri, përdorni komandën e mëposhtme.
kubectl api-resources --namespaced=false #Get a list of Kubernetes objects that can never be in a namespace
Ju mund të merrni detaje të hapësirës së emrave duke përdorur komandën e përmendur më poshtë.
kubectl get namespaces #Get a list of namespaces.
kubectl describe namespace test-env #Get details of a namespace.
Një hapësirë emri mund të krijohet gjithashtu duke përdorur një skedar .yml.
vim namespace-using-file.yml #Create a namespace definition file
Ekzekutoni komandën e mëposhtme për të krijuar një hapësirë emri të specifikuar në skedarin e përkufizimit të objektit.
kubectl create -f namespace-using-file.yml #Create a namespace using a .yml file
kubectl get namespaces #Get a list of namespaces
Kur nuk ju nevojitet më hapësira e emrave, ajo thjesht mund të fshihet duke përdorur komandën e mëposhtme.
kubectl get namespaces #Get a list of namespaces
kubectl delete namespaces env-prod test-env #Delete a namespace
kubectl get namespaces #Get a list of namespaces
Përdor komandën \kubectl change namespace\ për të kaluar në një hapësirë tjetër emri.
konkluzioni
Në këtë artikull, mësuam për hapësirat e emrave, krijimin e një hapësire emri dhe ndryshimin e hapësirës së paracaktuar të emrave, kontrollimin e burimeve të Kubernetes që janë dhe nuk janë në një hapësirë emri. Ne pamë gjithashtu se si një objekt Kubernetes, këtu pod, mund të krijohet në një hapësirë emri sipas zgjedhjes sonë.