在阿里云容器服务ACK下启用cgroup v2

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Kubernetes采用CGroup实现容器的资源隔离。CGroup分为V1和V2版本,V2版本提供了更一致的体验和更丰富的功能。例如, 支持CGroup级别的eBPF挂载,可以实现Pod级别的资源监控、网络重定向等, 基于eBPF的网络优化也依赖于它。 本文介绍如何在阿里云容器服务ACK下启用cgroup v2。

使用前提

1)节点操作系统使用Alibaba Cloud Linux 3.2104 或更高版本。
2)确保内核版本支持cgroup v2机制。可以通过运行以下命令来检查:

grep cgroup /proc/filesystems

如果看到了“cgroup2”这一行,则说明内核支持cgroup v2。
3) 启用cgroup v2需要在多个方面进行配置和调整,因此需要谨慎处理。在实际应用中,建议先进行充分的测试,确保应用程序和系统的稳定性和可靠性。

启用步骤

1)登录到每一个节点上, 运行如下命令:

grubby --update-kernel=ALL --args=systemd.unified_cgroup_hierarchy=1

2) 通过以下命令确认:

cat /etc/default/grub |grep systemd.unified_cgroup_hierarchy

应当可以看到GRUB_CMDLINE_LINUX的值包括systemd.unified_cgroup_hierarchy=1。

3) 注意, 需要重启该节点

4) 重新登录节点后, 修改 kubelet启动配置文件 /etc/systemd/system/kubelet.service.d/10-kubeadm.conf, 手动禁用了一个 featuregate (--feature-gates=LocalStorageCapacityIsolation=false), 确认参数修改如下:

ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_CGROUP_ARGS $KUBELET_CERTIFICATE_ARGS $KUBELET_EXTRA_ARGS $KUBELET_CUSTOMIZED_ARGS --feature-gates=LocalStorageCapacityIsolation=false --container-runtime=remote --container-runtime-endpoint=/var/run/containerd/containerd.sock

5) 重新加载kubelet服务配置:

systemctl daemon-reload

6) 重新启动kubelet服务:

systemctl restart kubelet

验证结果

确认启用cgroupv2

1) 重新登录该节点之后, 判断是否启用cgroupv2。 运行如下命令查看cgroup控制器列表:

cat /sys/fs/cgroup/cgroup.controllers

应当返回类似结果:

cpuset cpu io memory hugetlb pids rdma

2)使用如下命令查看当前系统已经挂载的 cgroup2 文件系统:

mount |grep cgroup2 

应当返回类似的输出结果:

cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime)

3) 验证cgroup v2是否正常。可以使用以下命令来检查cgroup v2是否正常运行:

cat /sys/fs/cgroup/kubepods.slice/kubepods-besteffort.slice/cpu.max

如果能够看到一个数字(表示CPU使用率),则表明cgroup v2已经成功启用。

确认kubelet运行正常

查看kubelet运行日志确认正常:

journalctl -u kubelet -f

总结

以上是在阿里云容器服务ACK下启用cgroup v2的基本步骤,实际应用中可能需要进行更多的配置和调整。
总之,启用cgroup v2需要在多个方面进行配置和调整,因此需要谨慎处理。在实际应用中,建议先进行充分的测试,确保应用程序和系统的稳定性和可靠性。

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
1月前
|
存储 Kubernetes Cloud Native
【阿里云云原生专栏】云原生容器存储:阿里云CSI与EBS的高效配合策略
【5月更文挑战第29天】阿里云提供云原生容器存储接口(CSI)和弹性块存储(EBS)解决方案,以应对云原生环境中的数据存储挑战。CSI作为Kubernetes的标准接口简化存储管理,而EBS则提供高性能、高可靠性的块存储服务。二者协同实现动态供应、弹性伸缩及数据备份恢复。示例代码展示了在Kubernetes中使用CSI和EBS创建存储卷的过程。
161 3
|
1天前
|
弹性计算 Serverless 调度
《阿里云产品四月刊》—享道出行:容器弹性技术驱动下的智慧出行稳定性实践(3)
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
|
1天前
|
弹性计算 Kubernetes 调度
《阿里云产品四月刊》—享道出行:容器弹性技术驱动下的智慧出行稳定性实践(4)
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
|
1天前
|
弹性计算 Kubernetes Java
阿里云云效产品使用问题之是否支持其他云厂商的Serverless容器发布
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
2天前
|
前端开发 Devops 测试技术
阿里云云效产品使用问题之更换所部署的环境关联的ACK集群该如何实现
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
1月前
|
弹性计算 Kubernetes 监控
【阿里云弹性计算】阿里云 ECS 与 Kubernetes 集成:轻松管理容器化应用
【5月更文挑战第28天】阿里云ECS与Kubernetes集成,打造强大容器管理平台,简化应用部署,实现弹性扩展和高效资源管理。通过Kubernetes声明式配置在ECS上快速部署,适用于微服务和大规模Web应用。结合监控服务确保安全与性能,未来将深化集成,满足更多业务需求,引领容器化应用管理新趋势。
209 2
|
1月前
|
弹性计算 安全 微服务
【阿里云云原生专栏】容器网络技术前沿:阿里云Terway网络方案详解
【5月更文挑战第26天】阿里云Terway是高性能的容器网络方案,基于ECS的ENI实现,提供低延迟高吞吐的网络服务。它简化网络管理,实现安全隔离,并与阿里云服务无缝集成。Terway由CNI、Node和Controller组成,适用于微服务、混合云和多租户环境,为企业数字化转型中的复杂网络需求提供强大支持。
238 1
|
1月前
|
运维 Kubernetes Serverless
阿里云容器服务
小陈在大刘的指导下学习Kubernetes,发现搭建和维护Kubernetes集群有一定难度。大刘建议小陈考虑使用阿里云的容器服务ACK,它基于Kubernetes,但进行了云原生优化,简化了集群管理和运维工作。ACK有三种形态:专有版、托管版和Serverless版。小陈认为ACK Serverless更适合,因为它无需运维,开箱即用,适合专注于业务开发。ACK Serverless基于弹性容器实例ECI,提供无服务器的容器运行环境,支持Kubernetes兼容,降低了使用门槛。
|
1月前
|
弹性计算 Kubernetes Cloud Native
【阿里云弹性计算】阿里云ECS与容器技术融合:打造敏捷的云原生基础设施
【5月更文挑战第21天】阿里云ECS结合容器技术(如Docker和Kubernetes),助力企业构建敏捷云原生基础设施。ECS提供高性能服务器,支持容器快速部署和自动化管理,实现应用的高可用性和可维护性。通过二者协同,企业能打造高效、可扩展的应用,加速数字化转型。示例代码展示了在ECS上使用Docker和Kubernetes部署云原生应用的过程。
71 3
|
1月前
|
存储 弹性计算 Kubernetes
【阿里云云原生专栏】深入解析阿里云Kubernetes服务ACK:企业级容器编排实战
【5月更文挑战第20天】阿里云ACK是高性能的Kubernetes服务,基于开源Kubernetes并融合VPC、SLB等云资源。它提供强大的集群管理、无缝兼容Kubernetes API、弹性伸缩、安全隔离及监控日志功能。用户可通过控制台或kubectl轻松创建和部署应用,如Nginx。此外,ACK支持自动扩缩容、服务发现、负载均衡和持久化存储。多重安全保障和集成监控使其成为企业云原生环境的理想选择。
235 3

相关产品

  • 容器服务Kubernetes版