kubernetes中的NameSpace(命名空间)
转载自夢_殤的博客kubenetes学习3–Namespace命名空间
什么是NameSpace
Namespace(命名空间)是kubernetes系统中的另一个重要的概念,通过将系统内部的对象“分配”到不同的Namespace中,形成逻辑上分组的不同项目、小组或用户组,便于不同的分组在共享使用整个集群的资源的同时还能被分别管理。
Kubernetes集群在启动后,会创建一个名为“default”的Namespace,如果不特别指明Namespace,则用户创建的Pod、RC、Service都被系统创建到“default”的Namespace中。
查询
[[email protected] k8s]# kubectl get namespaces
NAME STATUS AGE
default Active 6d
创建
- 直接创建Namespace。
apiVersion: v1
kind: Namespace
metadata:
name: development
labels:
name: development
[[email protected] k8s]# kubectl get namespace
NAME STATUS AGE
default Active 6d
development Active 6s
- Pod/RC/Service中指定Namespace
创建Pod/RC/Service时,如果不指定Namespace,则默认是"default"的Namespace。
比如[[email protected] k8s]# kubectl get pod php-controller-2bvdq -o yaml查看一个通过RC创建的Pod
kubenetes-api查询指定NameSpace下的资源
[[email protected] k8s]# kubectl create -f php-pod.yaml
pod "php-test" created
[[email protected] k8s]# kubectl get pods
[[email protected] k8s]# kubectl get pods --namespace=development
NAME READY STATUS RESTARTS AGE
php-test 1/1 Running 0 1m
kubectl get pods时,没有任何结果,因为默认的是查询namespace=default的,所以要加上namespace参数。同理创建RC/Service也是一样的。
总结
通过使用Namespace来组织k8s的各种对象,可以实现对用户的分组,即“多租户”管理。对不同的租户还可以进行单独的资源配额设置和管理,使得整个集群的资源配置非常灵活、方便。关于租户配额后期学习。