Namespace是对一组资源和对象的抽象集合,它的作用是用来实现多套环境的资源隔离或者多租户的资源隔离。默认kubernetes集群中所有的pod都可以互相访问,可以用过将相关pod划分到不同的namespace下,形成逻辑上的分组,以便对相关资源进行隔离使用和管理。也可以将不同namespace交给不同的租户进行管理,这样就实现了多租户的资源隔离。
注:不同版本命令可能存在些许差异
相关操作命令
查询namespace:
kubectl get ns(或kubectl get namespace)
默认情况下会创建几个namespace
default 所有未指定namespace的都会分配到这里
kube-node-lease 集群节点之间的心跳维护
kube-public 该空间下的资源可以被所有人(包括未认证)的用户访问
kube-system 所有由系统创建的资源都在这个命名空间下
创建namespace:
kubectl create ns dev
查看某个namespace:
kubectl get ns "namespace名称"
查询namespace的详情
kubectl describe ns "namespace名称"
删除namespace:
kubectl delete ns "namespace名称"
也可以通过yaml创建和删除namespace:
vim namespace-dev.yaml
内容如下:
apiVersion: v1
kind: Namespace
metadata:
name: dev
创建:kubectl create -f namespace-dev.yaml
删除:kubectl delete -f namespace-dev.yaml