首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes Namespace

Kubernetes Namespace

作者头像
kubernetes中文社区
发布2019-06-24 15:09:51
1.1K0
发布2019-06-24 15:09:51
举报

命名空间

Kubernetes支持由同一物理集群支持的多个虚拟集群。这些虚拟集群称为名称空间。

何时使用多个命名空间

命名空间旨在用于多个用户分布在多个团队或项目中的环境中。对于具有几个到几十个用户的集群,您根本不需要创建或考虑名称空间。当您需要它们提供的功能时,请开始使用命名空间。

命名空间提供名称范围。资源名称在名称空间中必须是唯一的,而不是跨名称空间。

命名空间是一种在多个用户之间划分群集资源的方法(通过资源配额)。

在Kubernetes的未来版本中,默认情况下,同一名称空间中的对象将具有相同的访问控制策略。

没有必要使用多个名称空间来分隔略有不同的资源,例如同一软件的不同版本:使用标签来区分同一名称空间中的资源。

使用命名空间

名称空间的管理指南文档中描述了名称空间的创建和删除。

查看名称空间

您可以使用以下命令列出集群中的当前名称空间:

kubectl get namespaces

NAME          STATUS    AGE
default       Active    1d
kube-system   Active    1d
kube-public   Active    1d

Kubernetes以三个初始名称空间开头:

  • default 没有其他命名空间的对象的默认命名空间
  • kube-system Kubernetes系统创建的对象的命名空间
  • kube-public此命名空间是自动创建的,并且所有用户(包括未经过身份验证的用户)都可以读取。此命名空间主要用于群集使用,以防某些资源在整个群集中可见且可公开读取。此命名空间的公共方面只是一个约定,而不是一个要求。

设置请求的命名空间

要临时设置请求的命名空间,请使用该--namespace标志。

例如:

kubectl --namespace=<insert-namespace-name-here> run nginx --image=nginx
kubectl --namespace=<insert-namespace-name-here> get pods

设置命名空间首选项

您可以在该上下文中为所有后续kubectl命令永久保存命名空间。

kubectl config set-context $(kubectl config current-context) --namespace=<insert-namespace-name-here>
# Validate it
kubectl config view | grep namespace:

命名空间和DNS

创建服务时,它会创建相应的DNS条目。此条目是表单<service-name>.<namespace-name>.svc.cluster.local,这意味着如果容器只是使用<service-name>,它将解析为命名空间本地的服务。这对于在多个名称空间(如开发,分段和生产)中使用相同的配置非常有用。如果要跨命名空间访问,则需要使用完全限定的域名(FQDN)。

并非所有对象都在命名空间中

大多数Kubernetes资源(例如pod,服务,复制控制器等)都在某些名称空间中。但是,命名空间资源本身并不在命名空间中。并且低级资源(例如节点和persistentVolumes)不在任何名称空间中。

要查看哪些Kubernetes资源在命名空间中,哪些不在:

# In a namespace
kubectl api-resources --namespaced=true
# Not in a namespace
kubectl api-resources --namespaced=false

本文翻译Kubernetes官方文档

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 kubernetes中文社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 命名空间
    • 何时使用多个命名空间
      • 使用命名空间
        • 查看名称空间
        • 设置请求的命名空间
        • 设置命名空间首选项
      • 并非所有对象都在命名空间中
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档