64

学习 Kubernetes(十八):资源管理

 4 years ago
source link: http://muziyuchen.com/kubernetes-18/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

容器资源

Kubernetes 为 Pod 中的容器提供了以下可配置的资源类型:

  • CPU spec.containers[].resources.requests.cpuspec.containers[].resources.limits.cpu
  • Memory spec.containers[].resources.requests.memoryspec.containers[].resources.limits.memory
  • Huge Page(Kubernetes v1.14 以上) spec.containers[].resources.requests.hugepages-<size>spec.containers[].resources.limits.hugepages-<size>

其中,Request 定义了请求资源大小,Limit 定义了使用资源的上限。

对于 Kubernetes 上的 Node 有:

$$\sum_{container\in node}{request.cpu_{container}} <= cpu_{node}$$

$$\sum_{container\in node}{request.memory_{container}} <= memory_{node}$$

CPU

单位 CPU 单元, 1 为 1 个 CPU, 0.1 或者 100m 为千分之 100 个 CPU(millicpu)。

对于 Docker Runtime, spec.containers[].resources.requests.cpu 会以 docker run 参数 --cpu-share requests.cpu * 1024 启动 Docker 容器。 spec.containers[].resources.limits.cpu 会以 docker run 参数 --cpu-quota limits.cpu * 100000 --cpu-period 1000000 启动 Docker 容器。

Memory

单位 Gi、Mi、Ki。注意,MiB 和 KiB 是二进制表示的字节单位,MB 和 KB 是十进制表示的字节单位。

举:chestnut::

1 KB = 1000 Bytes = 8000 Bits

1 KiB = ${2}^{10}$ Bytes = 1024 Bytes = 8192 Bits

对于 Docker Runtime, spec.containers[].resources.requests.memory 不会传递任何参数。 spec.containers[].resources.limits.memory 会以 docker run 参数 --memory limits.memory 启动 Docker 容器。

QoS

QoS 意为服务质量(Quality of Service),在 Kubernetes 中所有 Pod 被划分分三个 QoS 类别:

  • Guaranteed 等级高
  • Burstable 等级中
  • BestEffort 等级低

在资源不足时,低等级的 Pod 会被清理,从而确保高等级的 Pod 的稳定运行。

Guaranteed 条件:

  • Pod 中所有容器都且仅设置了 limits;
  • Pod 中所有容器都设置了 requests 和 limits,且 requests 等于 limits。

Burstable 条件:Pod 中最少一个容器 requests 不等于 limits。

BestEffort 条件:Pod 中所有容器均未设置 requests 和 limits。

资源配额

Kubernetes 提供了 ResourceQuota 资源用于约束命名空间资源的消费。

支持的资源包括:

  • requests.cpu
  • limits.cpu
  • requests.memory
  • limits.memory
  • …… 等

举:chestnut::

apiVersion: v1  
kind: ResourceQuota  
metadata:  
  name: resource-quota
spec:  
  hard:
    requests.cpu: 4
    requests.memory: 40Gi
    limits.cpu: 5
    limits.memory: 50Gi

资源限制

TODO

参考


Recommend

  • 73
    • blog.51cto.com 6 years ago
    • Cache

    学习十八-吾王z的博客

    四周第四次课(3月1日)6.1压缩打包介绍6.2gzip压缩工具6.3bzip2压缩工具6.4xz压缩工具四周第五次课(3月2日)6.5zip压缩工具6.6tar打包6.7打包并压缩看下这个帖子:http://ask.apelearn.com/question/5435压缩打包介绍常见的压缩文件格式好多时候下载的文件是压缩...

  • 75

    资源,无论是计算资源、存储资源、网络资源,对于容器管理调度平台来说都是需要关注的一个核心问题。 • 如何对资源进行抽象、定义? • 如何确认实际可以使用的资源量? • 如何为容器分配它所申请的资源?...

  • 49
    • 微信 mp.weixin.qq.com 5 years ago
    • Cache

    kubernetes 资源管理概述

  • 31
    • blog.51cto.com 4 years ago
    • Cache

    Kubernetes/6.Pod资源管理-Aaron

    1.标签标签是“键值”类型的数据,它们可于资源创建时直接指定,也可随时按需添加,而后即可由标签选择器进行匹配度检查从而完成资源的挑选。你需要注意:一个对象可拥有不止一个标签,而同一个标签也可被添加至多个资源之上;我们可以为资源附加多个不同纬度的标签以...

  • 22

    k8s 网络

  • 9

    Spring Cloud之Finchley版学习(十八)-Zuul深入 作者: wencst 分类: JAVA,微服...

  • 5
    • www.servicemesher.com 2 years ago
    • Cache

    Kubernetes资源管理概述

    本文转载自吴伟的博客。 kubernetes 资源简介 什么是资源? 在 kubernetes 中,有两个基础但是非常重要的概念:node 和...

  • 6

    备忘录模式(Memento Design Pattern),也叫快照(Snapshot)模式。指在不违背封装原则前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便之后恢复对象为先前的状态。 备忘录模式在日常中很常见,比如Word中的回退,MySQL中的und...

  • 4

    主成分分析(续) Other 常见的降维算法还有: https://www.cnblogs.com/lochan/p/6627511.html 数据降维之多维缩放MDS(Multiple Dimensional Scaling) https://mp.weixin.qq.com/s/cfeILnMsWlMC_T6lcSEW7A...

  • 4

    无监督/半监督/自监督深度学习 对比学习(续) https://mp.weixin.qq.com/s/VlSoMmAGDblQ2UYhLD96gA 什么是contrastive learning? https://mp.weixin.qq.com/s/qnG0YLf0yjs4aT9URRMDyw 有监督对比学习的一个简单...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK