Namespaces 是 Kubernetes 在同一个集群中进行逻辑环境划分的对象, 您可以通过 Namespaces 进行管理多个团队多个项目的划分。在 Namespaces 下,Kubernetes 对象的名称必须唯一。您可以通过资源配额进行可用资源的分配,还可以进行不同 Namespaces 网络的访问控制。
一个命名空间下可以拥有多个 ResourceQuota 资源,每个 ResourceQuota 可以设置每个 Namespace 资源的使用约束。可以设置 Namespaces 资源的使用约束如下:
不同的 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个 Loadbanlacer 模式的 service
cpu: "1000" ## 该 Namespaces 下最多使用1000个 CPU 的资源
memory: 200Gi ## 该 Namespaces 下最多使用200Gi的内存
Network Policy 是 K8s 提供的一种资源,用于定义基于 Pod 的网络隔离策略。不仅可以限制 Namespaces, 还可以控制 Pod 与 Pod 之间的网络访问控制,即控制一组 Pod 是否可以与其它组 Pod,以及其它 network endpoints 进行通信。
在集群内部署 NetworkPolicy Controller,并通过 NetworkPolicy 实现 Namespaces 之间的网络控制的操作详情可查看 使用 Network Policy 进行网络访问控制。
本页内容是否解决了您的问题?