Redis支持cgroupv1和cgroupv2

gwbalxhn  于 2024-01-06  发布在  Redis
关注(0)|答案(1)|浏览(133)

我希望我选择了正确的地方为我的问题.首先,我应该说,我是新手在redis,kubernetes等:(
我有几个Azure Kubernetes集群运行我们的应用程序。我们正在使用Redis。最近我发现redis:5.0.2-alpine image正在使用,而且它很旧。
大约1个月前,我们更新了kubernetes到1.26.6,我可以看到内存压力问题。现在我试图逐个检查所有第三方组件是否支持cgropV 2。
那么问题来了:Redis使用cgroup吗(我想是的)?如果是,哪个最低版本支持cgroupv 2?
我已经尝试通过kubectl top和Azure Monitor监视Pod的内存使用情况。但是,更新后没有检测到显著的变化。所有Pod自更新后使用+-相同的内存量。但是,节点的内存使用量增加。
先谢谢你了。

c9qzyr3d

c9qzyr3d1#

Kubernetes 1.26支持cgroup v2,但它的有效利用率还取决于容器运行时(如Docker或containerd)。请确保您的运行时与cgroup v2兼容并配置为cgroup v2。Redis不直接受cgroup版本的影响。
我如何检查运行时兼容性?
要检查容器运行时与Kubernetes 1.26中的cgroup v2的兼容性,可以首先确定节点上使用的是哪个容器运行时。

kubectl get nodes -o wide

字符串


的数据
Kubernetes 1.26不再支持CRI v1alpha2 API,这意味着不支持containerd 1.5版及更早版本的容器运行时。在升级到Kubernetes 1.26之前,您需要升级到containerd 1.6.0版或更高版本。
关于Redis和它与cgroup v2的兼容性,虽然Redis本身并不直接与cgroup交互,但它受到Kubernetes使用cgroup设置的资源限制的影响。Kubernetes 1.25将cgroup v2带到了通用可用性(GA),提供了一个具有增强的资源管理功能的统一控制系统。Kubernetes中的cgroup v2升级应该可以兼容大多数容器化的应用,包括Redis,只要底层容器运行时和主机的Linux内核支持cgroupv2。
因此,Redis要在cgroup v2环境中有效运行,主要的考虑因素是容器运行时和主机系统的配置。Kubernetes集群需要使用支持cgroup v2的容器运行时来设置,主机系统应该配置为使用cgroup v2。如果你使用的是Docker或containerd这样的容器运行时,必须确保将它们更新为支持cgroupv2的版本。
参考文件:
了解节点上使用的容器运行时|Kubernetes
Kubernetes 1.25: cgroup v2 graduates to GA | Kubernetes
Kubernetes Removals, Deprecations, and Major Changes in 1.26 | Kubernetes

相关问题