Kubernetes生态 之 Kubernetes 1.21 版本重要特性

Kubernetes 1.21 版本重要特性

Posted by 董江 on Friday, August 26, 2022

Kubernetes 1.21 版本 release

ReleaseNote: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.21.md

Kube-proxy IPVS变更

需要 net.ipv4.conf.all.route_localnet 设置为 1. 默认情况下已经不在设置此项

kubelet 添加内存管理

kubelet 组件生态中新增了一个 内存管理器 ,在 Linux 系统中,为需要保证 QoSPod 在多 NUMA 节点保障内存和大内存页分配。这个特性非常有用,尤其是当数据库类或者使用 DPDK 进行高性能数据包处理的应用要部署到 Kubernetes 中时,内存对其性能影响至关重要。

numactl 管理工具查看下当前机器上的情况:

$ numactl -H
available: 2 nodes (0-1)
node 0 cpus: 0
node 0 size: 990 MB
node 0 free: 141 MB
node 1 cpus: 1
node 1 size: 989 MB
node 1 free: 427 MB
node distances:
node   0    1
  0:  10   21
  1:  21   10

可以在启动 kubelet 的时候通过 --reserved-memory 以及配合 --memory-manager-policy 等参数来一起设置 --cpu-manager-policy=static--kube-reserved=cpu=1

--memory-manager-policy static --reserved-memory 0:memory=1Gi,hugepages-1M=2Gi --reserved-memory 1:memory=2Gi --cpu-manager-policy=static --kube-reserved=cpu=1

Pod 属于 Guaranteed QoS 类型的会自动绑定CPU 和 NUMA下内存

ReplicaSet 缩容算法调整

最新缩容算法,主要是优先删除生命周期最短的 Pod,本次修改主要是为了避免某些场景:

比如在缩容的时候,一次性把新扩容的所有的 Pod 给删掉了之类的。所以计划对他们进行对数计算,也可以简单的理解为想要相对随机的对 Pod 进行清理;

添加 apiserver 请求etcd max object size 和 reuse duration time

apiserver 添加标志 --lease-max-object-size --lease-reuse-duration-seconds 配置与etcd的请求大小和重连时间

CoreDNS 1.8.0

支持预先CoreDNS 检查

「如果这篇文章对你有用,请随意打赏」

Kubeservice博客

如果这篇文章对你有用,请随意打赏

使用微信扫描二维码完成支付