• k8sResourceQuotas资源限制 pod跟命名空间(重要)


    https://blog.csdn.net/weixin_43936969/article/details/106365538(重要)

    Resource Quotas(资源配额,简称quota)是对namespace进行资源配额,限制资源使用的一种策略。 K8S是一个多用户架构,当多用户或者团队共享一个K8S系统时,SA使用quota防止用户(基于namespace的)的资源抢占,定义好资源分配策略。
    Quota应用在Namespace上,默认情况下,没有Resource Quota的,需要另外创建Quota,并且每个Namespace最多只能有一个Quota对象。

    可限定支资源类型:

    • 计算资源:limits.cpu、requests.cpu、limits.memory、requests.memory
    • 存储资源,包括存储资源的总量以及指定storage class的总量
      requests.storage:存储资源总量,如500Gi
      persistentvolumeclaims:pvc的个数
      .storageclass.storage.k8s.io/requests.storage
      .storageclass.storage.k8s.io/persistentvolumeclaims
    • 对象数,即可创建的对象的个数
      pods,replicationcontrollers,configmaps,secrets,persistentvolumeclaims,services,services.loadbalancers,services.nodeports

    注意:

    在使用前需确认apiserver的配置文件中的KUBE_ADMISSION_CONTROL是否有ResourceQuota,如果没有需要添加并重启apiserver。
    Quota依赖于资源管理器,可以使用资源对象limits或者在创建资源对象是为pod设置资源限制(resources),如果不设置,资源对象无法创建。
    当该namespace中的任意个额度达到预设Quota时,将无法创建资源对象。

    示例:

    kubectl delete -f resourcequota.yaml
    cat << EOF > resourcequota.yaml
    apiVersion: v1
    kind: ResourceQuota
    metadata:
      namespace: lykops
      name: lykops
      labels:
        project: lykops
        app: resourcequota
        version: v1
    spec:
      hard:
        pods: 50
        requests.cpu: 0.5
        requests.memory: 512Mi
        limits.cpu: 5
        limits.memory: 16Gi
        configmaps: 20
        persistentvolumeclaims: 20
        replicationcontrollers: 20
        secrets: 20
        services: 50
    EOF
    kubectl create -f resourcequota.yaml
    
    apiVersion: v1
    kind: ResourceQuota
    metadata:
      name: mem-cpu-demo
    spec:
      hard:
        requests.cpu: "1"
        requests.memory: 1Gi
        limits.cpu: "2"
        limits.memory: 2Gi


    作者:与诗小睡
    链接:https://www.jianshu.com/p/f9d93b5c567e
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    【Distributed】缓存技术
    【Redis】基本数据类型
    【Redis】安装、开启以及关闭
    【Ehcache】基础知识学习
    VS2012 改C# 模版
    C# Windows Services 启动和结束其它进程
    .net Console.ReadLine无效
    VS2012在解决方案资源管理器显示解决方案名称
    Mysql 数据库中9大对象
    C# 开发 Windows 服务 使用Log4net 组件 不能生成日志文件
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/16317453.html
Copyright © 2020-2023  润新知