内容目录
目的
namespace是为了多用户或者多团队共享同一个k8s集群,将一个k8s集群进行逻辑划分,同时可以将每个逻辑划分之间的资源进行隔离。
实际使用中我们可以进行多用户或多团队逻辑划分,或者多环境逻辑划分。
我们给可以给每个namespace根据需要分配不同的资源,比如:我A团队需要50个CPU, 200GB内存和200GB存储空间,那么我们就可以使用ResourceQuota和LimitRange来对这个namespace进行限制。同理,我们也可以根据namespace对产品不同的环境进行资源限制,比如:dev环境需要25个CPU, 100GB内存和100GB存储, qa环境需要50个CPU,200GB内存和200GB硬盘,性能测试环境需要100个CPU,400GB内存和200GB硬盘,那么我们就可以对这些资源进行配额和限制。
默认命名空间
k8s安装完成后,默认有两个namespace: kube-system和default。
- kube-system命名空间:k8s将自己的系统资源运行在这个命名空间中。
- default命名空间: 用户自己的k8s资源如果没有指定命名空间,默认运行在这个命名空间。
命名空间命令
-
创建命名空间
kubectl create ns <namespace-name>
-
查询命名空间
kubectl get ns
-
切换到指定命名空间
kubectl config set-context --current --namespace=<namespace-name>
-
删除命名空间(高危操作,建议先手动清理空间下的资源)
kubectl delete namespace <namespace-name>
-
查看命名空间下的资源对象
kubectl get <resource-type> -n <namespace-name>