Kuberenetes系统学习(九)-----Kubernetes的API计算资源管理

1、查看kubernetes的产生的事件

kubectl describe pod fronted |grep -A 3 Events

2、查看集群中节点的计算资源容量和使用的量

kubectl describe nodes k8s-node-1

3、资源服务质量管理(Resource QoS)

容器的资源配置分为Requests和Limits.其中Requests是Kuberbetes调度时能为容器提供的完全可保障的资源量(最低保障),而Limits是系统允许容器运行时可能使用的资源量的上线(最高上限).

4、服务质量等级(Qos Classes)

Kubernetes将容器划分成3个QoS等级:
1)Guaranteed(完全可靠的):
Pod中的所有容器对所有资源类型都定义了Limits和Requests,并且所有容器的Limits和Requests值全部相等且都不为0.
2)Burstable(弹性波动,较可靠的):
如果pod中所有容器都为定义资源配置(Requests和Limits都未定义).
3)BestEffort(尽力而为,不太可靠的):
当一个pod的所有容器一部分定义了Limits和Requests,另一部分没有定义Limits和Requests.

5、资源配额管理(Resource Quotas)

资源配额管理可以限制命名空间中某种类型的对象的总数目上限,也可以设置命名空间中Pod可以使用的计算资源的总上限.

  1. Kubernetes中资源管理的基础是容器和Pod的资源配置(Requests和Limits).容器的资源配置指定了容器请求的资源和容器能使用的资源上限,Pod的资源配置则是Pod中所有容器的资源配置的总和上限.
  2. 通过资源配额机制,我们可以对命名空间中所有pod的使用资源的总量进行限制,也可以对这个命名空间中指定类型的对象的数量进行限制.使用作用域可以使资源配额只对符合特定范围的对象加以限制,因此作用域机制可以使资源配额的策略更加丰富,灵活.
  3. 资源配置范围管理(LimitRange)
    集群管理员希望对整个集群中容器或者pod配置的Requests和Limits做限制,那么可以通过配置Kubernetes命名空间中的LimitRange来达到目的.在Kubernetes集群中,如果pod没有显示定义Limits和Requests,那么Kubernetes系统会将该pod所在的命名空间中定义的LimitRange和defaultRequests配置到该pod上.

6、Resource和LimitRange的实践

1、限制运行状态的Pod的计算资源用量
2、限制持久存储卷的数量以控制对存储的访问
3、限制负载均衡器的数量以控制成本
4、防止滥用网络端口
5、提供默认的计算资源Requests以便于系统作出更优化的调度

欲了解更多的相关内容,请扫码关注公众号:
Kuberenetes系统学习(九)-----Kubernetes的API计算资源管理_第1张图片

你可能感兴趣的:(k8)