1、理论基础

Kubernetes 支持多个虚拟集群,它们底层依赖于同一个物理集群。 这些虚拟集群被称为名字空间。

名字空间适用于存在很多跨多个团队或项目的用户的场景。对于只有几到几十个用户的集群,根本不需要创建或考虑名字空间。当需要名称空间提供的功能时,请开始使用它们。

名字空间为名称提供了一个范围。资源的名称需要在名字空间内是唯一的,但不能跨名字空间。 名字空间不能相互嵌套,每个 Kubernetes 资源只能在一个名字空间中。

名字空间是在多个用户之间划分集群资源的一种方法(通过资源配额)。

不需要使用多个名字空间来分隔轻微不同的资源,例如同一软件的不同版本: 使用标签来区分同一名字空间中的不同资源。

2、查看信息

2.1 获取NameSpace

  1. [root@clientvm ~]# kubectl get namespaces
  2. NAME STATUS AGE
  3. default Active 20m
  4. kube-node-lease Active 20m
  5. kube-public Active 20m
  6. kube-system Active 20m
  7. # 或者使用缩写ns
  8. [root@clientvm ~]# kubectl get ns
  9. NAME STATUS AGE
  10. default Active 20m
  11. kube-node-lease Active 20m
  12. kube-public Active 20m
  13. kube-system Active 20m

2.2 查看NameSpace下的资源

  1. [root@clientvm ~]# kubectl get all -n kube-system

3、创建NameSpace

  1. [root@clientvm ~]# kubectl create namespace myweb
  2. namespace/myweb created
  3. [root@clientvm ~]# kubectl get ns
  4. NAME STATUS AGE
  5. ......
  6. myweb Active 23s
  7. [root@clientvm ~]# kubectl describe namespaces myweb
  8. Name: myweb
  9. Labels: <none>
  10. Annotations: <none>
  11. Status: Active
  12. No resource quota.
  13. No LimitRange resource.

4、删除NameSpace

  1. [root@clientvm ~]# kubectl delete namespaces myweb
  2. namespace "myweb" deleted

注意:删除NameSpace会删除NameSpace中的所有资源,如果其中有资源删不掉,这个NameSpace可能会处于Terminating状态,停止响应