6. Namespaces
namespaces用于具有多个用户的环境,这些用户分布在多个团队或项目中。
命名空间提供了名称范围。资源名称在namespaes内必须唯一,命名空间不能彼此嵌套,并且每个Kubernetes资源只能位于一个命名空间中。
Namespaces通过resource quota可以实现多个用户之间划分群集资源的方法
Kubernetes默认创建的Namespaces:
default 默认命名空间
kube-system Kubernetes系统创建的对象的命名空间
kube-public此命名空间是自动创建的,并且所有用户(包括未经过身份验证的用户)都可以读取。
kube-node-lease功能: 每个节点在 kube-node-lease命名空间中都有一个关联的 Lease 对象。 Lease 是一种轻量级的资源,可在集群扩展时提高节点心跳机制的性能。Kubernetes 节点发送的心跳有助于确定节点的可用性。kubelet 负责创建和更新 NodeStatus 和 Lease 对象。
注意:node, persistentVolumes资源类型则不属于任何namespace。


6.1 查看当前集群下的namespace**
kubectl get namespaces

6.2 命令
# 创建
kubectl create namespace test

删除
kubectl delete namespaces demo
namespace “demo” deleted

6.3 yaml
# 编写yaml
cat << EOF > my-namespace.yaml
apiVersion: v1
kind: Namespace
metadata:
name: test
EOF

执行yaml文件创建namespaces
kubectl apply -f ./my-namespace.yaml

通过yaml文件删除namespaces
kubectl delete -f my-namespace.yaml