命名空间
命名空间适用于存在很多跨多个团队或项目的用户的场景。对于只有几到几十个用户的集群,根本不需要创建或考虑命名空间。当需要名称空间提供的功能时,请开始使用它们。
命名空间为名称提供了一个范围。资源的名称需要在命名空间内是唯一的,但不能跨命名空间。命名空间不能相互嵌套,每个 Kubernetes 资源只能在一个命名空间中。
命名空间是在多个用户之间划分集群资源的一种方法(通过资源配额)。
在 Kubernetes 未来版本中,相同命名空间中的对象默认将具有相同的访问控制策略。
命名空间的创建和删除已在中进行了描述。
您可以使用以下命令列出集群中现存的命名空间:
Kubernetes 会创建三个初始命名空间:
* 没有指明使用其它命名空间的对象所使用的默认命名空间 * kube-system
Kubernetes 系统创建对象所使用的命名空间 * 这个命名空间是自动创建的,所有用户(包括未经过身份验证的用户)都可以读取它。这个命名空间主要用于集群使用,以防某些资源在整个集群中应该是可见和可读的。这个命名空间的公共方面只是一种约定,而不是要求。
例如:
您可以永久保存该上下文中所有后续 kubectl 命令使用的命名空间。
当您创建一个 Service 时,Kubernetes 会创建一个相应的 。
该条目的形式是 ,这意味着如果容器只使用 <service-name>
,它将被解析到本地命名空间的服务。这对于跨多个命名空间(如开发、分级和生产)使用相同的配置非常有用。如果您希望跨命名空间访问,则需要使用完全限定域名(FQDN)。
查看哪些 Kubernetes 资源在命名空间中,哪些不在命名空间中:
- 进一步了解删除命名空间。