1. 程式人生 > 其它 >2.namespace名稱空間

2.namespace名稱空間

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
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。
初學linux,每學到一點東西就寫一點,如有不對的地方,懇請包涵!