您可通过容器服务控制台,设置命名空间的资源配额和限制。

前提条件

背景信息

在默认的情况下,运行中的 Pod 可以无限制的使用 Node 上的 CPU 和内存,这意味着任意一个 Pod 都可以无节制地使用集群的计算资源,某个命名空间的 Pod 可能会耗尽集群的资源。

命名空间的一个重要的作用是充当一个虚拟的集群,用于多种工作用途,满足多用户的使用需求,因此,为命名空间配置资源额度是一种最佳实践。

您可为命名空间配置包括 CPU、内存、Pod 数量等资源的额度,更多信息请参见 Resource Quotas

操作步骤

  1. 登录 容器服务管理控制台
  2. 在 Kubernetes 菜单下,单击左侧导航栏的集群 > 命名空间,选择所需的集群,然后右侧的资源配额与限制


  3. 在资源配额与限制对话框中,您可快速设置资源配额和默认资源限制。
    说明 对命名空间设置CPU/内存配额(ResourceQuota)后,创建容器组时,必须指定CPU/内存资源限制,或为命名空间配置默认资源限制(LimitRange),详情请参考:Resource Quotas
    1. 您可为命名空间配置资源限额(ResourceQuota)。


    2. 您可为该命名空间下的容器设置资源限制和资源申请(defaultRequest),从而控制容器的开销。详情参见https://kubernetes.io//memory-default-namespace/


  4. 您已为该命名空间创建资源配额和限制,连接到 Master 节点连接地址,执行以下命令,查看该命名空间的资源情况。
    
    #kubectl get limitrange,ResourceQuota -n test
    NAME AGE
    limitrange/limits 8m
    
    NAME AGE
    resourcequota/quota 8m
    
    
    # kubectl describe limitrange/limits resourcequota/quota -n test
    Name: limits
    Namespace: test
    Type Resource Min Max Default Request Default Limit Max Limit/Request Ratio
    ---- -------- --- --- --------------- ------------- -----------------------
    Container cpu - - 100m 500m -
    Container memory - - 256Mi 512Mi -
    
    Name: quota
    Namespace: test
    Resource Used Hard
    -------- ---- ----
    configmaps 0 100
    limits.cpu 0 2
    limits.memory 0 4Gi
    persistentvolumeclaims 0 50
    pods 0 50
    requests.storage 0 1Ti
    secrets 1 10
    services 0 20
    services.loadbalancers 0 5