在 Kubernetes
中,命名空间提供了一种用于隔离单个集群中的资源组的机制。资源名称在命名空间内必须是唯一的,但不能跨命名空间。基于命名空间的作用域仅适用于命名空间物体
(例如部署、服务等)而不是集群范围的对象(例如存储类、节点、持久卷等)。
初始命名空间
Kubernetes 从四个初始命名空间开始:
default
Kubernetes 包含此命名空间,以便您无需先创建命名空间即可开始使用新集群。
kube-node-lease
该命名空间保存与每个节点关联的Lease对象。节点租约允许 kubelet 发送心跳,以便控制平面可以检测节点故障。
kube-public
所有客户端(包括未经身份验证的客户端)都可以读取此命名空间。该命名空间主要保留供集群使用,以防某些资源在整个集群中公开可见和可读。此命名空间的公共方面只是一个约定,而不是一个要求。
kube-system
Kubernetes 系统创建的对象的命名空间。
查看空间
在图形化管理界面可以看见现在有五个空间
使用命令查询名称空间kubectl get namespace,下面是使用的简称
[root@k8s-master ~]# kubectl get ns
NAME STATUS AGE
default Active 48m
kube-node-lease Active 48m
kube-public Active 48m
kube-system Active 48m
kuboard Active 24m
[root@k8s-master ~]#
创建空间
直接点击创建按钮创建
使用命令创建名称空间 kubectl creatae namespace xxxx
[root@k8s-master ~]# kubectl create ns mytest2
namespace/mytest2 created
[root@k8s-master ~]#
使用yml文件创建,编写了一个叫mytest3.yml的文件内容如下
[root@k8s-master ~]# vi mytest3.yml
[root@k8s-master ~]# cat mytest3.yml
apiVersion: v1
kind: Namespace
metadata:
name: mytest3
[root@k8s-master ~]# kubectl apply -f mytest3.yml
namespace/mytest3 created
[root@k8s-master ~]# kubectl get ns
NAME STATUS AGE
default Active 66m
kube-node-lease Active 66m
kube-public Active 66m
kube-system Active 66m
kuboard Active 42m
mytest3 Active 63s
[root@k8s-master ~]#
删除空间
同样直接点击删除就行,图形界面有手就行
使用命令删除名称空间 kubectl delete namespace xxxx
[root@k8s-master ~]# kubectl delete ns mytest1
namespace "mytest1" deleted
[root@k8s-master ~]#