Namespace
Namespace 是對一組資源和對象的抽象集合,比如可以用來將系統內部的對象劃分爲不同的項目組或用戶組。常見的 pod, service, replication controller 和 deployment 等都是屬於某一個 namespace 的(默認是 default),而 node, persistent volume,namespace 等資源則不屬於任何 namespace。
Namespace 常用來隔離不同的用戶,比如 Kubernetes 自帶的服務一般運行在 kube-system
namespace 中。
Namespace 操作
kubectl
可以通過--namespace
或者-n
選項指定 namespace。如果不指定,默認爲 default。查看操作下, 也可以通過設置 --all-namespace=true 來查看所有 namespace 下的資源。
查詢
注意:namespace 包含兩種狀態 "Active" 和 "Terminating"。在 namespace 刪除過程中,namespace 狀態被設置成 "Terminating"。
創建
注意:命名空間名稱滿足正則表達式 [a-z0-9]([-a-z0-9]*[a-z0-9])?
, 最大長度爲 63 位
刪除
注意:
刪除一個 namespace 會自動刪除所有屬於該 namespace 的資源。
default
和kube-system
命名空間不可刪除。PersistentVolume 是不屬於任何 namespace 的,但 PersistentVolumeClaim 是屬於某個特定 namespace 的。
Event 是否屬於 namespace 取決於產生 event 的對象。
v1.7 版本增加了
kube-public
命名空間,該命名空間用來存放公共的信息,一般以 ConfigMap 的形式存放。
參考文檔
Last updated