Namespaces
Namespaces 是 Kubernetes 在同一个集群中进行逻辑环境划分的对象,您可以通过 Namespaces 进行管理多个团队多个项目的划分。在 Namespaces 下,Kubernetes 对象的名称必须唯一。您可以通过资源配额进行可用资源的分配,还可以进行不同 Namespaces 网络的访问控制。
使用方法
通过 TKE 控制台使用:
TKE 控制台提供 Namespaces 的增删改查功能。
创建命名空间
-
登录 TKE 控制台。
-
进入集群管理页面:在左侧导航栏选择【集群】。
-
进入集群详情页:选择所需集群,单击该集群的【ID/名称】。
-
进入 Namespace 页面:在集群详情页左侧,选择【命名空间】。
-
创建 Namespace:单击【新建】,输入名称、描述后,单击【创建 Namespace】完成创建。
设置资源配额和限制
-
进入配额管理页面:在命名空间页面,根据需要单击对应的 namespace 操作列的【配额管理】。
-
编辑配额:在资源配额与限制页面,可以通过单击【编辑配额】快速配置计算、存储、其他资源限制。
-
设置资源限制:在编辑 LimitRange 页面可以快速设置资源限制。
通过 Kubectl 使用
更多详情可查看 Kubernetes 官网文档。
通过 ResourceQuota 设置 Namespaces 资源的使用配额
一个命名空间下可以拥有多个 ResourceQuota 资源,每个 ResourceQuota 可以设置每个 Namespace 资源的使用约束。可以设置 Namespaces 资源的使用约束如下:
- 计算资源的配额,例如 CPU、内存。
- 存储资源的配额,例如请求存储的总存储。
- Kubernetes 对象的计数,例如 Deployment 个数配额。
不同的 Kubernetes 版本,ResourceQuota 支持的配额设置略有差异,更多详情可查看 Kubernetes ResourceQuota 官方文档。
ResourceQuota 示例:
apiVersion: v1
kind: ResourceQuota
metadata:
name: object-counts
namespace: default
spec:
hard:
configmaps: "10" # 最多 10 个 ConfigMap
replicationcontrollers: "20" # 最多 20 个 replicationcontroller
secrets: "10" # 最多 10 个 secret
services: "10" # 最多 10 个 service
services.loadbalancers: "2" # 最多 2 个 Loadbalancer 模式的 service
cpu: "1000" # 该 Namespace 下最多使用 1000 个 CPU 的资源
memory: 200Gi # 该 Namespace 下最多使用 200Gi 的内存
通过 NetworkPolicy 设置 Namespaces 网络的访问控制
Network Policy 是 k8s 提供的一种资源,用于定义基于 Pod 的网络隔离策略。不仅可以限制 Namespaces,还可以控制 Pod 与 Pod 之间的网络访问控制,即控制一组 Pod 是否可以与其它组 Pod,以及其它 network endpoints 进行通信。
在集群内部署 NetworkPolicy Controller,并通过 NetworkPolicy 实现 Namespaces 之间的网络控制的操作详情可查看 使用 Network Policy 进行网络访问控制。