Kubernetes中創(chuàng)建命名空間實(shí)現(xiàn)方法
正文
命名空間系統(tǒng)對(duì)計(jì)算來說并不陌生,我們大多數(shù)人可能在幾乎所有編程語言中都見過命名空間,無論您在哪里遇到命名空間,其基本目的都是相同的:用于邏輯分組。
同樣,在 Linux 內(nèi)核中,也有命名空間的概念,比如存儲(chǔ)和網(wǎng)絡(luò)命名空間。每個(gè)容器也有自己的存儲(chǔ)命名空間和網(wǎng)絡(luò)命名空間,用于資源的隔離和分配。
Kubernetes命名空間是指由同一物理集群支持的虛擬集群,此選項(xiàng)專為在多個(gè)用戶分布在多個(gè)工作團(tuán)隊(duì)或項(xiàng)目的環(huán)境中使用而設(shè)計(jì)。
本文將介紹如何創(chuàng)建Kubernetes命名空間。
命名空間類型
Kubernetes 中有三種命名空間。
- Default:默認(rèn)命名空間用于沒有其他命名空間的對(duì)象。
- Kube-system:Kubernetes 系統(tǒng)起源對(duì)象的命名空間。
- Kube-public:用于需要對(duì)所有用戶公開可用的資源的命名空間。
查看命名空間
可以使用以下命令查看當(dāng)前的命名空間:
kubectl get namespaces
它將列出現(xiàn)有的命名空間、狀態(tài)等。
如果想知道特定命名空間的概要,可以使用以下命令:
Kubectl get namespaces <name>
還可以使用以下命令獲取特定命名空間的詳細(xì)描述:
Kubectl describe namespace <name>
描述顯示資源配額(如果指定)和資源范圍,其中資源配額顯示命名空間可以使用的資源總量,資源范圍顯示可以消耗的最小或最大資源。
還顯示名稱空間是活動(dòng)的還是終止的,這是任何命名空間的兩種狀態(tài),活動(dòng)命名空間是當(dāng)前使用的命名空間,而終止命名空間是正在刪除且無法進(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,您將無法獲取 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)在無需在命令中指定命名空間即可獲取 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 使得用戶可以自由地在自己的空間中使用分配的資源進(jìn)行工作,以最佳方式利用他們的時(shí)間和資源,而不會(huì)在團(tuán)隊(duì)之間造成混亂,Kubernetes 命名空間有助于應(yīng)用程序開發(fā),并使開發(fā)人員的日常任務(wù)易于完成。
以上就是Kubernetes中創(chuàng)建命名空間實(shí)現(xiàn)方法的詳細(xì)內(nèi)容,更多關(guān)于Kubernetes 創(chuàng)建命名空間的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
IoT邊緣集群Kubernetes?Events告警通知實(shí)現(xiàn)示例
這篇文章主要為大家介紹了IoT邊緣集群Kubernetes?Events告警通知實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02k8s部署Pyroscope并分析golang性能瓶頸(最新推薦)
這篇文章主要介紹了k8s部署Pyroscope并分析golang性能瓶頸,Pyroscope支持多種編程語言并提供了豐富的性能數(shù)據(jù),可以幫助我們跟蹤應(yīng)用程序的執(zhí)行情況,并根據(jù)收集到的數(shù)據(jù)來識(shí)別性能瓶頸,需要的朋友可以參考下2023-04-04Rainbond上部署API?Gateway?Kong及環(huán)境配置教程
這篇文章主要為大家介紹了Rainbond上部署API?Gateway?Kong及環(huán)境配置教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04