k8s总结(二)k8s命名空间namespace
一、命名空间作用概述
Kubernetes 支持多个虚拟集群,它们底层依赖于同一个物理集群。 这些虚拟集群被称为命名空间。
二、何时使用命名空间
命名空间适用于存在很多跨多个团队或项目的用户的场景。对于只有几到几十个用户的集群,根本不需要创建或考虑命名空间。当需要名称空间提供的功能时,请开始使用它们。
命名空间为名称提供了一个范围。资源的名称需要在命名空间内是唯一的,但不能跨命名空间。命名空间不能相互嵌套,每个 Kubernetes 资源只能在一个命名空间中。
命名空间是在多个用户之间划分集群资源的一种方法(通过资源配额)。在 Kubernetes 未来版本中,相同命名空间中的对象默认将具有相同的访问控制策略。不需要使用多个命名空间来分隔轻微不同的资源,例如同一软件的不同版本:使用 labels来区分同一命名空间中的不同资源。
三、使用命令空间
Kubernetes 默认会创建三个初始命名空间:
- default 没有指明使用其它命名空间的对象所使用的默认命名空间
- kube-system Kubernetes 系统创建对象所使用的命名空间
- kube-public 这个命名空间是自动创建的,所有用户(包括未经过身份验证的用户)都可以读取它。这个命名空间主要用于集群使用,以防某些资源在整个集群中应该是可见和可读的。这个命名空间的公共方面只是一种约定,而不是要求。
1创建命名空间
2kubectl create namespace test
3删除命令空间
4kubectl delete ns test //namespace可以简写为ns
5切换至kube-system的命名空间
6kubectl config set-context --current --namespace=kube-system
大多数 kubernetes 资源(例如 Pod、Service、副本控制器等)都位于某些命名空间中。但是命名空间资源本身并不在命名空间中。而且底层资源,例如 nodes和持久化卷不属于任何命名空间。可以使用下面命令查看哪些 Kubernetes 资源在命名空间中,哪些不在命名空间中:
1kubectl api-resources --namespaced=true ##查看哪些资源在命令空间
2kubectl api-resources --namespaced=false ##查看哪些资源不在命令空间
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/k8s-namespace/6630.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.