2.namespace名稱空間
阿新 • • 發佈:2022-02-27
1.什麼是名稱空間?
Kubernetes 支援多個虛擬叢集,它們底層依賴於同一個物理叢集。 這些虛擬叢集被稱為名稱空間。
名稱空間namespace是k8s叢集級別的資源,可以給不同的使用者、租戶、環境或專案建立對應的名稱空間,例如,可以為test、devlopment、production環境分別建立各自的名稱空間。
2.namespace應用場景
名稱空間適用於存在很多跨多個團隊或專案的使用者的場景。對於只有幾到幾十個使用者的叢集,根本不需要建立或考慮名稱空間。
- 檢視名稱空間及其資源物件
k8s叢集預設提供了幾個名稱空間用於特定目的,例如,kube-system主要用於執行系統級資源,存放k8s一些元件的。而default則為那些未指定名稱空間的資源操作提供一個預設值。
使用kubectl get namespace可以檢視namespace資源,使用kubectl describe namespace $NAME可以檢視特定的名稱空間的詳細資訊。
- 管理namespace資源
namespace資源屬性較少,通常只需要指定名稱即可建立,如“kubectl create namespace qa”。namespace資源的名稱僅能由字母、數字、下劃線、連線線等字元組成。刪除namespace資源會級聯刪除其包含的所有其他資源物件。
3.namespacs使用案例分享
#建立一個test名稱空間 [root@master1~]# kubectl create ns test #切換名稱空間,切換名稱空間後,kubectl get pods 如果不指定-n,檢視的就是kube-system名稱空間的資源了。 [root@master1~]# kubectl config set-context --current --namespace=kube-system #檢視哪些資源屬於名稱空間級別的 [root@xianchaomaster1~]# kubectl api-resources --namespaced=true
4.namespace資源限額
namespace是名稱空間,裡面有很多資源,那麼我們可以對名稱空間資源做個限制,防止該名稱空間部署的資源超過限制。(#建立pod時候必須設定資源限額,否則建立失敗)
1 apiVersion: v1 2 kind: ResourceQuota 3 metadata: 4 name: mem-cpu-quota 5 namespace: test 6 spec: 7 hard: 8 requests.cpu: "2" 9 requests.memory: 2Gi 10 limits.cpu: "4" 11初學linux,每學到一點東西就寫一點,如有不對的地方,懇請包涵!limits.memory: 4Gi 12 13 #建立的ResourceQuota物件將在test名字空間中新增以下限制: 14 #每個容器必須設定記憶體請求(memory request) 所有容器的記憶體請求總額不得超過2GiB。 15 #記憶體限額(memory limit) 所有容器的記憶體限額總額不得超過4 GiB。 16 #cpu請求(cpu request) 所有容器的CPU請求總額不得超過2 CPU。 17 #cpu限額(cpu limit) 所有容器的CPU限額總額不得超過4CPU。