k8s~为pod添加节点的资源限制

饭宝  金牌会员 | 2024-10-31 20:24:03 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 889|帖子 889|积分 2667

CPU单位

CPU资源以CPU核心数为单位举行度量的。在Kubernetes中,一个CPU相当于:
  1. 1 AWS vCPU
  2. 1 GCP Core
  3. 1 Azure vCore
  4. 一个超线程(在使用超线程的裸金属Intel处理器上)
复制代码
请求0.5 CPU的容器所保证的CPU核数是请求节点上的1个CPU的一半。你可以用后缀m表示milli。例如100m CPU、100millicpu``和0.1 CPU都是相同的。精度不允许凌驾1m。
不指定CPU限制

如果没有为容器指定CPU限制,则会出现以下情况之一:
* 容器对它可以使用的CPU资源没有上限。容器可以使用它运行的节点上可用的所有CPU资源。
* 容器在具有默认CPU限制的命名空间中运行,容器会自动分配默认限制。集群管理员可以使用LimitRange指定CPU限制的默认值。
CPU请求和限制的目标

通过配置集群中运行的CPU请求和容器的限制,可以有效地利用集群节点上可用的CPU资源。通过将Pod的CPU请求保持在较低的水平,可以很好地调度Pod。将CPU限制设置为大于CPU请求,你可以完成两件事:

  • Pod可以利用CPU资源举行突发运动。
  • 在突发运动期间,Pod可以使用的CPU资源数量被限制在某个合理的数量内。
在 Kubernetes 中,可以通过设置 CPU 和内存的限制来控制每个 Pod 或容器的资源使用。这样可以确保资源的合理分配,避免某些应用占用过多资源而影响整个集群的稳固性。
1. 配置 CPU 和内存的 Limit

在 Kubernetes 的 Pod 或 Deployment 定义中,可以通过 resources 字段来设置 CPU 和内存的请求(requests)和限制(limits)。以下是一个示例 YAML 文件:
  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4.   name: my-app
  5. spec:
  6.   containers:
  7.     - name: my-container
  8.       image: my-image:latest
  9.       resources:
  10.         requests:
  11.           memory: 512Mi   # 请求的内存量
  12.           cpu: 500m      # 请求的 CPU 核心数
  13.         limits:
  14.           memory: 1Gi    # 限制的内存量
  15.           cpu: 1        # 限制的 CPU 核心数
复制代码
2. 字段解释


  • requests:表示容器启动时所需的最低资源量。Kubernetes 会根据这些请求来调度 Pod。
  • limits:表示容器可以使用的最大资源量。如果容器凌驾了这个限制,Kubernetes 会接纳措施,例如限制 CPU 使用或停止容器。
3. 单位说明


  • CPU

    • 可以用整数表示核心数(例如 1 表示一个核心)。
    • 也可以用毫核心(m)表示,如 500m 表示半个核心。

  • Memory

    • 可以使用字节(B)、千字节(Ki)、兆字节(Mi)、吉字节(Gi)等单位。例如:512Mi 表示 512 兆字节。

4. 示例应用

以下是一个更复杂的 Deployment 示例,包含多个容器的资源配置:
  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4.   name: my-deployment
  5. spec:
  6.   replicas: 3
  7.   selector:
  8.     matchLabels:
  9.       app: my-app
  10.   template:
  11.     metadata:
  12.       labels:
  13.         app: my-app
  14.     spec:
  15.       containers:
  16.         - name: app-container
  17.           image: my-app-image:latest
  18.           resources:
  19.             requests:
  20.               memory: 256Mi
  21.               cpu: 250m
  22.             limits:
  23.               memory: 512Mi
  24.               cpu: 1
  25.         - name: sidecar-container
  26.           image: my-sidecar-image:latest
  27.           resources:
  28.             requests:
  29.               memory: "128Mi"
  30.               cpu: "100m"
  31.             limits:
  32.               memory: "256Mi"
  33.               cpu: "500m"
复制代码
5. 留意事项


  • 合理配置:根据应用的实际需求合理配置资源请求和限制,避免过高或过低的设置。
  • 监控与调整:使用监控工具(如 Prometheus、Grafana)观察 Pod 的资源使用情况,并根据需要举行调整。
  • 测试与验证:在生产环境前举行充分的测试,以确保配置可以或许满意性能需求。
通过以上配置,你可以有效管理 Kubernetes 中的 CPU 和内存资源,确保应用的稳固运行。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

饭宝

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表