Kubernetes命名空間


本文環境為Kubernetes V1.11,操作系統版本為 CentOs 7.3,Kubernetes集群安裝可以參考 kubeadm安裝kubernetes V1.11.1 集群

1. 什么是Namespaces

Kubernetes中提供了命名空間,但是如果你的團隊規模比較小並且集群規模也不大,完全可以不用Namespaces而使用labels來區分不同的資源,隨着項目增多、集群規模擴大、人員的增加,你才需要使用Namespaces,通過namespace你可以創建多個虛擬的集群。

Namespaces提供了一種在不同用戶間分隔集群資源的方法,未來Kubernetes可能會提供基於命名空間的權限控制。

2. Namespaces 的常用操作

2.1 查看命名空間

[root@devops-101 ~]# kubectl get namespaces
NAME          STATUS    AGE
default       Active    7d
kube-public   Active    7d
kube-system   Active    7d

Kubernetes默認有三個命名空間

  • default:默認的命名空間
  • kube-system:由Kubernetes系統對象組成的命名空間
  • kube-public:該空間由系統自動創建並且對所有用戶可讀性,做為集群公用資源的保留命名空間

2.2 創建命名空間

[root@devops-101 ~]# kubectl create namespace test-cluster
namespace/test-cluster created
[root@devops-101 ~]# kubectl get namespaces
NAME           STATUS    AGE
default        Active    7d
kube-public    Active    7d
kube-system    Active    7d
test-cluster   Active    3s

2.2 查詢命名空間中的資源

[root@devops-101 ~]# kubectl get all --namespace=test-cluster
No resources found.
[root@devops-101 ~]# kubectl get all -n test-clutser
No resources found.
[root@devops-101 ~]# kubectl get nodes
NAME         STATUS     ROLES     AGE       VERSION
devops-101   Ready      master    7d        v1.11.2
devops-102   Ready      <none>    7d        v1.11.2
devops-103   NotReady   <none>    4d        v1.11.2

2.3 修改默認的namespace配置

# kubectl config view //先查看是否設置了current-context
# kubectl config set-context default --namespace=bs-test //設置default配置的namespace參數
# kubectl config set current-context default //設置當前環境變量為 default

通過這段代碼設置默認的命名空間后,就不用每次在輸入命令的時候帶上--namespace參數了。

3. 注意

不是所有的對象都在命名空間中,例如 nodes、persistentVolumes 就沒有命名空間,所有用戶都是可見的。

可以通過下面的命令查看命名空間中的資源。

[root@devops-101 ~]# kubectl api-resources --namespaced=true
# 查看不在命名空間中的資源
[root@devops-101 ~]# kubectl api-resources --namespaced=false

參考資料:

  1. Kubernetes Namespaces
  2. Kubernetes中文手冊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM