Kubernetes中創(chuàng)建命名空間實(shí)現(xiàn)方法
正文
命名空間系統(tǒng)對(duì)計(jì)算來(lái)說(shuō)并不陌生,我們大多數(shù)人可能在幾乎所有編程語(yǔ)言中都見(jiàn)過(guò)命名空間,無(wú)論您在哪里遇到命名空間,其基本目的都是相同的:用于邏輯分組。
同樣,在 Linux 內(nèi)核中,也有命名空間的概念,比如存儲(chǔ)和網(wǎng)絡(luò)命名空間。每個(gè)容器也有自己的存儲(chǔ)命名空間和網(wǎng)絡(luò)命名空間,用于資源的隔離和分配。
Kubernetes命名空間是指由同一物理集群支持的虛擬集群,此選項(xiàng)專(zhuān)為在多個(gè)用戶(hù)分布在多個(gè)工作團(tuán)隊(duì)或項(xiàng)目的環(huán)境中使用而設(shè)計(jì)。
本文將介紹如何創(chuàng)建Kubernetes命名空間。
命名空間類(lèi)型
Kubernetes 中有三種命名空間。
- Default:默認(rèn)命名空間用于沒(méi)有其他命名空間的對(duì)象。
- Kube-system:Kubernetes 系統(tǒng)起源對(duì)象的命名空間。
- Kube-public:用于需要對(duì)所有用戶(hù)公開(kāi)可用的資源的命名空間。
查看命名空間
可以使用以下命令查看當(dāng)前的命名空間:
kubectl get namespaces
它將列出現(xiàn)有的命名空間、狀態(tài)等。
如果想知道特定命名空間的概要,可以使用以下命令:
Kubectl get namespaces <name>
還可以使用以下命令獲取特定命名空間的詳細(xì)描述:
Kubectl describe namespace <name>
描述顯示資源配額(如果指定)和資源范圍,其中資源配額顯示命名空間可以使用的資源總量,資源范圍顯示可以消耗的最小或最大資源。
還顯示名稱(chēng)空間是活動(dòng)的還是終止的,這是任何命名空間的兩種狀態(tài),活動(dòng)命名空間是當(dāng)前使用的命名空間,而終止命名空間是正在刪除且無(wú)法進(jìn)一步使用的命名空間。
創(chuàng)建命名空間
嘗試在不存在的特定命名空間中創(chuàng)建一個(gè) pod。
要在“test-env”命名空間中創(chuàng)建一個(gè) pod,請(qǐng)執(zhí)行以下命令。
kubectl run nginx --image=nginx --namespace=test-env #嘗試在不存在的命名空間中創(chuàng)建一個(gè)pod。
Pod 不會(huì)在不存在的命名空間中創(chuàng)建,因此我們首先需要?jiǎng)?chuàng)建一個(gè)命名空間。
要?jiǎng)?chuàng)建命名空間“test-env”,請(qǐng)執(zhí)行以下命令(k8s create namespace)。
kubectl create namespace test-env #創(chuàng)建命名空間 kubectl get namespace #獲取命名空間列表

現(xiàn)在我們有了一個(gè)命名空間,我們想在其中創(chuàng)建一個(gè) pod。
要在我們創(chuàng)建的命名空間中創(chuàng)建一個(gè) pod,請(qǐng)將 --namespace=test-env 選項(xiàng)傳遞給命令。
kubectl run nginx --image=nginx --namespace=test-env #在命名空間中創(chuàng)建一個(gè)pod。
如果您嘗試在不指定命名空間的情況下獲取 pod,您將無(wú)法獲取 pod 的詳細(xì)信息。
kubectl get pods #獲取pod列表
要獲取屬于“test-env”命名空間的 pod 的詳細(xì)信息,請(qǐng)使用以下命令。
kubectl get pods --namespace=test-env #獲取指定命名空間中的pod列表

如果要將命名空間設(shè)置為默認(rèn)命名空間,則不需要在命令中指定命名空間選項(xiàng),請(qǐng)使用以下命令。
kubectl config set-context --current --namespace=test-env #設(shè)置默認(rèn)命名空間
現(xiàn)在無(wú)需在命令中指定命名空間即可獲取 pod 的詳細(xì)信息。
kubectl get pods #從默認(rèn)命名空間中獲取 pod 列表

要切換到默認(rèn)命名空間,請(qǐng)使用以下命令。
kubectl config set-context --current --namespace=default #檢查命名空間為默認(rèn)值 kubectl get pods #獲取pod列表

要檢查哪個(gè)是默認(rèn)命名空間,請(qǐng)使用以下命令。
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:

檢查哪些 Kubernetes 資源是命名空間,執(zhí)行以下命令。
kubectl api-resources --namespaced=true #獲取可以在命名空間中的Kubernetes對(duì)象

要查看哪些 Kubernetes 資源不在命名空間中,請(qǐng)使用以下命令。
kubectl api-resources --namespaced=false #獲取永遠(yuǎn)不能在命名空間中的Kubernetes對(duì)象列表

您可以使用下面提到的命令獲取命名空間的詳細(xì)信息。
kubectl get namespaces #獲取命名空間列表。 kubectl describe namespace test-env #獲取命名空間的詳細(xì)信息。

命名空間也可以使用 .yml 文件創(chuàng)建。
vim namespace-using-file.yml #創(chuàng)建命名空間定義文件

執(zhí)行以下命令以創(chuàng)建對(duì)象定義文件中指定的命名空間。
kubectl create -f namespace-using-file.yml #使用.yml文件創(chuàng)建命名空間 kubectl get namespaces #獲取命名空間列表

當(dāng)您不再需要命名空間時(shí),可以使用以下命令將其刪除。
kubectl get namespaces #獲取命名空間列表 kubectl delete namespaces env-prod test-env #刪除一個(gè)命名空間 kubectl get namespaces #獲取命名空間列表

使用命令“kubectl change namespace”切換到不同的命名空間。
結(jié)論
Kubernetes 使得用戶(hù)可以自由地在自己的空間中使用分配的資源進(jìn)行工作,以最佳方式利用他們的時(shí)間和資源,而不會(huì)在團(tuán)隊(duì)之間造成混亂,Kubernetes 命名空間有助于應(yīng)用程序開(kāi)發(fā),并使開(kāi)發(fā)人員的日常任務(wù)易于完成。
以上就是Kubernetes中創(chuàng)建命名空間實(shí)現(xiàn)方法的詳細(xì)內(nèi)容,更多關(guān)于Kubernetes 創(chuàng)建命名空間的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
淺析k8s中各組件和kube?apiserver通信時(shí)的認(rèn)證和鑒權(quán)問(wèn)題
這篇文章主要介紹了k8s中各組件和kube?apiserver通信時(shí)的認(rèn)證和鑒權(quán),本文使用的k8s集群是用kubekey搭建,命令是./kk create cluster --with-kubernetes v1.21.5 --with-kubesphere v3.2.1,需要的朋友可以參考下2022-06-06
kubernetes 使用jq命令對(duì)資源配置查看方式
這篇文章主要介紹了kubernetes 使用jq命令對(duì)資源配置查看方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
詳解k8s ConfigMap 中 subPath 字段和 items
volumeMounts.subPath 屬性可用于指定所引用的卷內(nèi)的子路徑,而不是其根路徑,這篇文章主要介紹了詳解k8s ConfigMap 中 subPath 字段和 items 字段,需要的朋友可以參考下2023-03-03
Rainbond部署組件Statefulset的使用官方文檔
這篇文章主要為大家介紹了官方文檔Rainbond部署組件Statefulset的使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04
關(guān)于CentOS7日志文件及journalctl日志查看方法
這篇文章主要介紹了關(guān)于CentOS7日志文件及journalctl日志查看方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
Kubernetes Dashboard 配置用戶(hù)名密碼方式登錄操作流程
為了K8s集群安全,默認(rèn)情況下Dashboard以Token的形式登錄的,那如果我們想以用戶(hù)名/密碼的方式登錄該怎么操作呢?其實(shí)只需要我們創(chuàng)建用戶(hù)并進(jìn)行 ClusterRoleBinding綁定即可,下面給大家分享Kubernetes Dashboard 配置用戶(hù)名密碼方式登錄操作流程,感興趣的朋友一起看看吧2024-06-06

