云服务器内容精选

  • 命名空间概述 命名空间(Namespace)是对一组资源和对象的抽象整合。在同一个CCE集群内可创建不同的命名空间,不同命名空间中的数据彼此隔离。使得它们既可以共享同一个集群的服务,也能够互不干扰。例如可以将开发环境、测试环境的业务分别放在不同的命名空间。 命名空间的类别说明,如表1所示。 表1 命名空间类别 创建类型 说明 集群默认创建 集群在启动时会默认创建default、kube-public、kube-system、kube-node-lease命名空间。 default:所有未指定Namespace的对象都会被分配在default命名空间。 kube-public:此命名空间下的资源可以被所有人访问(包括未认证用户),用来部署公共插件、容器模板等。 kube-system:所有由Kubernetes系统创建的资源都处于这个命名空间。 kube-node-lease:每个节点在该命名空间中都有一个关联的“Lease”对象,该对象由节点定期更新。 用户创建 用户可以按照需要创建命名空间,例如开发环境、联调环境和测试环境分别创建对应的命名空间。或者按照不同的业务创建对应的命名空间,例如系统若分为登录和游戏服务,可以分别创建对应命名空间。 父主题: 管理命名空间
  • 使用kubectl创建Namespace 使用如下方式定义Namespace。 apiVersion: v1 kind: Namespace metadata: name: custom-namespace 使用kubectl命令创建。 $ kubectl create -f custom-namespace.yaml namespace/custom-namespace created 您还可以使用kubectl create namespace命令创建。 $ kubectl create namespace custom-namespace namespace/custom-namespace created
  • 创建命名空间 登录CCE控制台,单击集群名称进入集群。 在左侧导航栏中选择“命名空间”,在右上角单击“创建命名空间”。 参照表1设置命名空间参数。 表1 命名空间基本信息 参数 参数说明 名称 新建命名空间的名称,命名必须唯一。 描述 输入对命名空间的描述信息。 配额管理 资源配额可以限制命名空间下的资源使用,进而支持以命名空间为粒度的资源划分。 须知: 建议根据需要在命名空间中设置资源配额,避免因资源过载导致集群或节点异常。 请输入整型数值,不输入表示不限制该资源的使用。 若您需要限制CPU或内存的配额,则创建工作负载时必须指定CPU或内存请求值。 配置完成后,单击“确定”。
  • 命名空间类别 命名空间按创建类型分为两大类:集群默认创建的、用户创建的。 集群默认创建的:集群在启动时会默认创建default、kube-public、kube-system、kube-node-lease命名空间。 default:所有未指定Namespace的对象都会被分配在default命名空间。 kube-public:此命名空间下的资源可以被所有人访问(包括未认证用户),用来部署公共插件、容器模板等。 kube-system:所有由Kubernetes系统创建的资源都处于这个命名空间。 kube-node-lease:每个节点在该命名空间中都有一个关联的“Lease”对象,该对象由节点定期更新。NodeStatus和NodeLease都被视为来自节点的心跳,在v1.13之前的版本中,节点的心跳只有NodeStatus,NodeLease特性从v1.13开始引入。NodeLease比NodeStatus更轻量级,该特性在集群规模扩展性和性能上有明显提升。 用户创建的:用户可以按照需要创建命名空间,例如开发环境、联调环境和测试环境分别创建对应的命名空间。或者按照不同的业务创建对应的命名空间,例如系统若分为登录和游戏服务,可以分别创建对应命名空间。
  • 查看空间信息 命名空间信息页面,展示包括命名空间类型、多活管理中心、功能点、主备多活分区及其可用区、数据源和数据同步链路等信息。 登录MAS控制台,在“空间管理”页面,单击命名空间的“操作”,再单击“详情”。 直接单击命名空间也可进入命名空间信息页面。 查看命名空间相关信息。 图2 命名空间信息 单击“添加数据源”,可以在此命名空间下添加数据源。 单击“创建同步链路”,可以在此命名空间下创建同步链路。
  • 命名空间类别 命名空间按创建类型分为两大类:集群默认创建的、用户创建的。 集群默认创建的:集群在启动时会默认创建default、kube-public、kube-system、kube-node-lease命名空间。 default:所有未指定Namespace的对象都会被分配在default命名空间。 kube-public:此命名空间下的资源可以被所有人访问(包括未认证用户),使集群中的某些资源可以在整个集群范围内可见可读。 该命名空间为Kubernetes预留的命名空间,其公共属性只是一种约定而并非要求。 kube-system:所有由Kubernetes系统创建的资源都处于这个命名空间。 kube-node-lease:每个节点在该命名空间中都有一个关联的“Lease”对象,该对象由节点定期更新。NodeStatus和NodeLease都被视为来自节点的心跳,在v1.13之前的版本中,节点的心跳只有NodeStatus,NodeLease特性从v1.13开始引入。NodeLease比NodeStatus更轻量级,该特性在集群规模扩展性和性能上有明显提升。 用户创建的:用户可以按照需要创建命名空间,例如开发环境、联调环境和测试环境分别创建对应的命名空间。或者按照不同的业务创建对应的命名空间,例如系统若分为登录和游戏服务,可以分别创建对应命名空间。
  • 创建命名空间 登录CCE控制台,单击集群名称进入集群。 在左侧导航栏中选择“命名空间”,在右上角单击“创建命名空间”。 参照表1设置命名空间参数。 表1 命名空间基本信息 参数 参数说明 名称 新建命名空间的名称,命名必须唯一。 描述 输入对命名空间的描述信息。 配额管理 资源配额可以限制命名空间下的资源使用,进而支持以命名空间为粒度的资源划分。 须知: 建议根据需要在命名空间中设置资源配额,避免因资源过载导致集群或节点异常。 例如:在集群中每个节点可以创建的实例(Pod)数默认为110个,如果您创建的是50节点规格的集群,则最多可以创建5500个实例。因此,您可以在命名空间中自行设置资源配额以确保所有命名空间内的实例总数不超过5500个,以避免资源过载。 请输入整型数值,不输入表示不限制该资源的使用。 若您需要限制CPU或内存的配额,则创建工作负载时必须指定CPU或内存请求值。 配置完成后,单击“确定”。
  • 使用kubectl创建Namespace 使用如下方式定义Namespace。 apiVersion: v1 kind: Namespace metadata: name: custom-namespace 使用kubectl命令创建。 $ kubectl create -f custom-namespace.yaml namespace/custom-namespace created 您还可以使用kubectl create namespace命令创建。 $ kubectl create namespace custom-namespace namespace/custom-namespace created
  • 问题根因 当集群中存在APIService对象时,删除命名空间会先访问APIService对象,若APIService资源无法正常访问,会阻塞命名空间删除。除用户创建的APIService对象资源外,CCE集群部分插件也会自动创建APIService资源,如metrics-server, prometheus插件。 APIService使用介绍请参考:https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/
  • 问题现象 删除命名空间时,命名空间一直处“删除中”状态,无法删除。查看命名空间yaml配置,status中有报错“DiscoveryFailed”,示例如下: 上图中报错信息为:Discovery failed for some groups, 1 failing: unable to retrieve the complete list of server APIs: metrics.k8s.io/v1beta1: the server is currently unable to handle the request 表示当前删除命名空间动作阻塞在kube-apiserver访问metrics.k8s.io/v1beta1 接口的APIService资源对象。