k8s 资源管理

节点故障大部分都是由于资源分配不合理、超额分配引起的,因此需要用某个技术手段保证节点的资源不会过大地超额分配。Kubernetes为我们提供了开箱即用的资源管理,可以通过ResourceQuota和LimitRange的配合防止节点资源超额分配。

ResourceQuota

首先看一下ResourceQuota(资源配额)的使用,资源配额是限制某个命名空间对资源使用的一个总量限制,比如内存、CPU、Pod数量等。

什么是资源配额

在生产环境中,可能会有多个Kubernetes集群,面向开发环境、测试环境、预生产环境和生产环境等。身为Kubernetes管理员,必然知道每个环境的规模有多大、可调度资源有多少,并且知道如何合理地为容器分配内存和CPU,所以一个管理员去管理整个Kubernetes集群时,很少会有资源分配超出集群可调度范围的情况。

在生产环境中,可能会有多个Kubernetes集群,面向开发环境、测试环境、预生产环境和生产环境等。身为Kubernetes管理员,必然知道每个环境的规模有多大、可调度资源有多少,并且知道如何合理地为容器分配内存和CPU,所以一个管理员去管理整个Kubernetes集群时,很少会有资源分配超出集群可调度范围的情况。

为了解决上述问题,Kubernetes引入了ResourceQuota的概念,以方便Kubernetes管理员方便地进行资源分配,比如给A项目组分配16核64GB的资源,并且最多只能部署20个Pod、30个Service等,这样来对Kubernetes的各类资源进行限制。

定义一个ResourceQuota

和其他资源配置方法一样,资源配额也可以通过一个YAML文件进行创建,比如定义一个比较常用的ResourceQuota如下:

apiVersion: v1
kind: ResourceQuota
metadata:
  name: example-quota
  namespace: default
spec:
  hard:
    pods: "10"
    requests.cpu: "4"
    requests.memory: "10Gi"
    limits.cpu: "8"
    limits.memory: "20Gi"

在此配置中:

pods: “10” 限制命名空间中的 Pod 数量最多为 10 个。
requests.cpu: “4” 限制命名空间中所有 Pod 合计的 CPU 请求最多为 4 个 CPU。
requests.memory: “10Gi” 限制命名空间中所有 Pod 合计的内存请求最多为 10 GiB。
limits.cpu: “8” 限制命名空间中所有 Pod 合计的 CPU 使用量上限为 8 个 CPU。
limits.memory: “20Gi” 限制命名空间中所有 Pod 合计的内存使用量上限为 20 GiB。

ResourceQuota的使用

接下来演示ResourceQuota的具体使用方法,首先创建一个用于测试的Namespace:

kubectl create ns quota-example

创建一个测试Demo,比如限制该Namespace的PVC不能超过1个:


apiVersion: v1
kind: ResourceQuota
metadata:
  name: pvc-quota
  namespace: quota-example
spec:
  hard:
    persistentvolumeclaims: "1"

创建该ResourceQuota:

     kubectl create -f quota-objects.yaml

查看创建的资源限制状态:

kubectl get quota pvc-quota -n quota-example -o yaml

在这里插入图片描述

可以从status字段的used看出当前资源限制的使用量,并且Namespace只有在创建了ResourceQuota才会启用资源使用的配额,没有创建ResourceQuota的Namespace不限制资源使用。

之后创建一个PVC:

**touch pvc.yaml **

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值