暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

k8s 调优 参数优化

发发发 2024-08-13
147

这些参数是 Kubernetes(K8s)中的一些配置选项,用于控制不同的行为和功能。让我逐个解释它们:

  1. --feature-gates=RotateKubeletClientCertificate=true,RotateKubeletServerCertificate=true

    • 这个参数用于启用或禁用一些实验性的功能。在这里,启用了两个功能:RotateKubeletClientCertificate 和 RotateKubeletServerCertificate。这些功能可能是用于定期轮换 Kubelet 的客户端证书和服务器证书,以增强安全性。
  2. --image-gc-high-threshold=70

    • 这个参数设置了镜像垃圾收集的高阈值。当节点上的磁盘使用率高于此阈值时,Kubernetes 将开始垃圾收集(删除不再使用的镜像)以释放空间。
  3. --image-gc-low-threshold=60

    • 这个参数设置了镜像垃圾收集的低阈值。一旦磁盘使用率下降到此阈值以下,垃圾收集过程将停止。
  4. --kube-reserved=cpu=500m,memory=512Mi,ephemeral-storage=1Gi

    • 这个参数设置了 Kubernetes 对节点上资源的保留量。具体来说,为 CPU 分配了 500 毫核(500m),内存分配了 512MB(512Mi),临时存储(ephemeral storage)分配了 1GB(1Gi)。
  5. --system-reserved=cpu=1000m,memory=1024Mi,ephemeral-storage=1Gi

    • 这个参数设置了系统对节点上资源的保留量。类似于上一个参数,为 CPU 分配了 1000 毫核(1000m),内存分配了 1024MB(1024Mi),临时存储(ephemeral storage)分配了 1GB(1Gi)。

这些参数可以根据你的集群需求进行调整,以确保系统的稳定性和性能。

 

控制节点上的 CPU 管理策略

1.前言
在业务中使用Kubernetes编排容器时,通常会使用到Request & Limits参数对容器进行CPU与内存的使用限制.
但是对于某些比较消耗系统资源的业务,可能需要进行资源的独占分配(以保证其运行的性能).
所以使用单一的资源限制,还不能达到pod运行的性能,所以需要进行资源独占的分配编排.
在Kubernetes 版本> v1.12中,有CPU Manager技术去实现Pod级别的绑定运行CPU.

1.1 理解CPU Manager作用
每个worker节点运行多个pod,某些Pods可能会运行高CPU负载的业务,这些高负载的pod,很有可能在当前的节点上
抢占CPU的资源,影响当前节点上其他pod的运行性能.所以采用此技术来解决这个问题.


1.2 CPU 管理策略配置
CPU 管理策略通过 kubelet 参数 --cpu-manager-policy 来指定。Kubernetes 支持两种管理策略:
none: 默认策略,表示现有的调度行为。
static: 允许为节点上的某些消耗CPU资源的pod对cpu有独占性。

CPU管理器定期通过CRI写入资源更新,以保证内存中CPU分配与cgroupfs一致.
同步频率通过新增的 Kubelet 配置参数 --cpu-manager-reconcile-period 来设置.
如果不指定,默认与 --node-status-update-frequency 的周期相同。


1.3 none策略
none 策略显式地启用现有的默认CPU亲和方式,
不提供操作系统调度器默认行为之外的亲和性策略.
通过 CFS 配额来实现 Guaranteed pods 的 CPU 使用限制.

1.4 static 策略
static 策略针对具有整数型(容器对 CPU 资源的限制值是一个大于或等于1的整数值) CPU requests的 Guaranteed Pod,
它允许该类 Pod 中的容器访问节点上的独占CPU资源.
这种独占性是使用 cpuset cgroup 控制器来实现的.

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论