Kubernetes资源管理

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

提升服务可用性只从应用程序级别考虑是远远不够的,也需要考虑服务器的稳定性。在使用Kubernetes部署程序时,很容易造成资源的过量分配,作为Kubernetes管理员,必须要去考虑服务器的可用性,防止服务器宕机带来的雪崩。

通常情况下,底层中间件的QoS会配置为Guaranteed,其他服务可能并不需要那么高的QoS。在实际使用时,最有可能超额分配的是内存,而CPU通常使用率不高,只有在高频工作时,CPU才会处于忙碌状态。所以在设置resources参数时,内存的request需要按需配置,比如一个程序的运行内存最少为2GB,那么内存的request就要设置为2GB,而不能低于2GB。对于CPU,Limit参数很重要,防止Pod的CPU过高,从而引起宿主机的问题。

在生产环境部署一个程序时,需要从应用的健康检查、平滑退出、亲和力、QoS和ResourceQuota等多个维度去考虑应用的健壮性,这些都是不可省略的配置。

最后更新于