k8s 命名空间(namespace)

内容纲要

file

目的

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硬盘,那么我们就可以对这些资源进行配额和限制。

file

file

默认命名空间

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>

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部