在kubernetes里面,还有一个定义是名称空间。在我们安装kubernetes集群的时候,系统会默认创建3个名称空间,如下:
1、default 2、kube-public 3、kube-system
在kubernetes里面,除了很低层级的pods没有名称空间之外,我们几乎能看到的对象都需要有一个名称空间。这个名称空间的定义就是在yml文件里面的metadata里面。例如:
metadata: annotations: k8s.kuboard.cn/displayName: nginx labels: k8s.kuboard.cn/layer: web k8s.kuboard.cn/name: nginx name: nginx namespace: kuboard resourceVersion: '11532'
这里的名称空间其实就是相当于分组,例如我们的生产环境、测试环境、开发环境3个组,那么我们在同一个集群里面就可以为这3个组分配3个名称空间。每一个名称空间里面的服务可以互相调用。不同名称空间里面的服务不可以互相调用。如果我们没有为对象设置名称空间的话,那么此对象会被默认分配给default的名称空间里面去。
备注:
1、上面我们提到有部分对象是不需要有名称空间的,这里主要是kubernetes底层的一些东西,我们可以使用如下命令查看哪些对象没有名称空间:
kubectl api-resources --namespaced=false
还没有评论,来说两句吧...