kubernetes--资源管理

本文基于kubernetes 1.5.2版本编写

概念

默认情况下,kubernetes不会限制pod等资源对象使用系统资源,单个pod或者容器可以无限制使用系统资源。

kubernetes的资源管理分为资源请求(request)和资源限制(limit),资源请求能够保证Pod有足够的资源来运行,而资源限制则是防止某个Pod无限制地使用资源,导致其他Pod崩溃。kubernetes1.5之前的版本只支持CPU和内存这两种资源类型。

三种方式

kubernetes的资源管理有3种方式,分别是单个资源对象的资源管理(以下简称resource)、limitranges、resourcequotas。resource和limitranges可以单独使用,也可以同时使用,而resourcequotas必须配合resource或者limitranges使用。limitranges和resourcequotas是针对于namespace的。

单个资源对象的资源管理

resource是针对资源对象中单个容器进行资源管理,在创建/变更资源对象时指定的。

详情请见http://blog.csdn.net/liyingke112/article/details/76155428

limitranges

LimitRange(简称limits)基于namespace的资源管理,包括pod和container的最小、最大和default、defaultrequests等。一旦创建limits,以后创建资源时,K8S将该limits资源限制条件默认&强制给pod,创建后发现不符合规则,将暂停创建pod。

详情请见http://blog.csdn.net/liyingke112/article/details/77198045

resourcequotas

Resource Quotas(资源配额,简称quota)是为了namespace进行资源配额,限制资源使用的一种策略。对于资源管理来说,quota是管理该namespace下所有资源对象的CPU、内存的limits和request的总量,如果超过该限制,资源对象无法创建。

详情请见http://blog.csdn.net/liyingke112/article/details/77369427

配置规则

1、每个namespace有且只有一个limits和quota

2、limits的同种类型(CPU或者memory)配置规则:

每容器(type: container):max>=default>=defaultRequest>min

每pod(type: pod):max>=min

pod和容器对应关系:容器max*容器数<=pod max;容器min*容器数<=pod min

3、在同一个namespace下,limits和单个资源对象的资源管理(resource)同时使用,同种类型(CPU或者memory)配置规则:resource的单个资源配置范围不能超过limit的容器范围,总和不能超过limit的pod范围。

具体如下:

resource的request的总和(如有多个容器,所有的)>= limits的容器的defaultrequets*容器数 >= limits的pod的min

resource的limit的总和(如有多个容器,所有的)<= limits的容器的requets*容器数 <= limits的pod的max

配置正确,kubernetes将按照resource进行资源管理,如果配置错误,无法创建对象。

4、quota需要配合limits或者resource,如果没有配置limits时,每次创建对象时,必须配置resource,否则无法创建对象

5、该namespace下,所有pod/容器的CPU或者memory的limit、request的任意一种总量大于quota相对应的值后,无法分配更多的系统资源,无法创建新的资源对象,无法扩容RC、RS等。

使用心得

1、资源管理对象单一性

尽量使用limits针对容器(更好)或者pod的资源管理,尽量不同时针对容器和pod,在一pod多容器情况下,即使有充足系统资源,创建资源对象失败几率高。

在limits使用的namespace下,最好不要在创建资源时使用resource。

2、资源管理类型单一性

使用资源限制(limit或者max)或者资源请求(request或者min)

同时使用时,最好保持“1、资源管理对象单一性”

3、服务部署单一性

由于limits会针对该namespace下的所有pod或者容器,所以在该namespace下尽量部署资源需求相同的服务

4、合理配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: kubernetes-dashboard.yaml 是 Kubernetes Dashboard 的配置文件,用于部署和配置 Kubernetes Dashboard。它包含了 Kubernetes Dashboard 的镜像、服务、端口、授权等信息。通过部署该配置文件,可以在 Kubernetes 集群中启用 Kubernetes Dashboard,方便用户管理和监控 Kubernetes 集群。 ### 回答2: kubernetes-dashboard.yaml是一个用于部署Kubernetes仪表盘的YAML文件。Kubernetes仪表盘是一个提供可视化用户界面的Kubernetes管理工具,可以帮助用户更好地监控和管理集群。 在kubernetes-dashboard.yaml文件中,我们可以定义各种配置和参数来自定义仪表盘的部署。例如,我们可以指定镜像名称、版本和来源,以及模板配置参数,如容器端口、资源限制等。 通过使用kubectl命令,我们可以使用该YAML文件轻松地部署仪表盘。只需在命令行中运行kubectl apply -f kubernetes-dashboard.yaml,Kubernetes将会根据该文件中的配置自动创建相关的资源和对象。 在部署完成后,我们可以通过访问仪表盘的URL来打开Kubernetes仪表盘界面。在界面上,我们可以查看集群的状态和健康信息,发现和管理已部署的工作负载、服务和存储卷等。通过仪表盘,我们还可以进行故障排查、监控指标查看以及对资源的操作和管理。 总之,kubernetes-dashboard.yaml文件是用于部署Kubernetes仪表盘的配置文件,它可以让我们通过可视化界面更方便地管理和监控Kubernetes集群。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值