k8s命名空间
Kubernetes 支持多个虚拟集群,它们底层依赖于同一个物理集群。 这些虚拟集群被称为命名空间。
命名空间 namespace 是 k8s 集群级别的资源,可以给不同的用户、租户、环境或项目创建对应的命名空间,例如,可以为 test、devlopment、production 环境分别创建各自的命名空间。
命名空间适用于存在很多跨多个团队或项目的用户的场景。对于只有几到几十个用户的集群,根本不需要创建或考虑命名空间。
1、查看名称空间及其资源对象
k8s 集群默认提供了几个名称空间用于特定目的,例如,kube-system 主要用于运行系统级资源,存放 k8s 一些组件的。而 default 则为那些未指定名称空间的资源操作提供一个默认值。
使用 kubectl get namespace 可以查看 namespace 资源,使用 kubectl describe namespace
$NAME 可以查看特定的名称空间的详细信息。
2、管理 namespace 资源
namespace 资源属性较少,通常只需要指定名称即可创建,如“kubectl create namespace qa”。namespace 资源的名称仅能由字母、数字、下划线、连接线等字符组成。删除 namespace 资源会级联删除其包含的所有其他资源对象。
#创建一个 test 命名空间
[root@master1 ~]# kubectl create ns test
#切换命名空间
[root@master1 ~]# kubectl config set-context --current --namespace=kube-system
#查看哪些资源属于空间级的
kubectl api-resources --namespaced=true
#namespace资源限制额度
创建一个test的命名空间
每个容器必须设置内存请求(memory request),内存限额(memory limit),cpu 请求(cpurequest)和 cpu 限额(cpu limit)。
所有容器的内存请求总额不得超过 2GiB。
所有容器的内存限额总额不得超过 4 GiB。
所有容器的 CPU 请求总额不得超过 2 CPU。
所有容器的 CPU 限额总额不得超过 4CPU。
#查看test命名空间下的pod
kubectl get pods -n test