容器服务ACK支持AliyunLinux2和场景优化

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: Aliyun Linux 2是新一代阿里云原生Linux操作系统,为云上应用程序提供安全、稳定、高性能的定制化运行环境,并针对云基础设施进行了深度优化,为您打造最佳的运行时体验。并免费的获得阿里云针对操作系统的长期支持。容器服务ACK目前已经全面支持AliyunLinux2的节点创建和加入集群,并结合AliyunLinux2的高内核特性提供了多场景的优化。

1.前言:

Aliyun Linux 2是新一代阿里云原生Linux操作系统,为云上应用程序提供安全、稳定、高性能的定制化运行环境,并针对云基础设施进行了深度优化,为您打造最佳的运行时体验。并免费的获得阿里云针对操作系统的长期支持。
容器服务ACK目前已经全面支持AliyunLinux2的节点创建和加入集群,并结合AliyunLinux2的高内核特性提供了多场景的优化。

2.使用AliyunLinux2操作系统镜像的优势:

AliyunLinux2的操作系统是针对阿里云的飞天虚拟化平台开发的,针对阿里云的环境提供了很多优化和新特性,主要包括了:

  • 在阿里云上启动最快的Linux发行版,
  • 针对ECS大规格虚机、裸金属服务器深度优化,特别是大规格实例的多任务的场景
  • 默认安装阿里云常用软件包,如Aliyun CLI,cloud-init等,减少云资源的管理成本
  • 精简系统,最小的安全攻击面,最少的系统资源占用
  • 更完善的支持体系,在阿里云上提供多种渠道的技术支持体系
  • 更及时的软件安全漏洞(CVE)修复
  • 支持内核热补丁升级的能力,大大保障漏洞修复时的业务连续性

用户应用实例本身在AliyunLinux2上运行也会有不错的性能表现,其中包含了:

  • 针对ECS实例环境大幅优化启动速度,在系统压力来临时快速的扩容启动计算资源,启动速度相对Centos 7提升29%
  • 针对ECS实例环境优化了多任务的场景,提升大规格实例多任务的性能,同样规格下能有16%的性能提升
  • 更高效的系统调用,系统调用的性能提升11%
  • Linux网络栈的优化,综合网络性能相对Centos 7提升7.8%
  • AliyunLinux2默认是编译好BBR的拥塞控制算法的,在公网访问较多的场景中允许用户修改拥塞控制算法为BBR,提升公网访问的带宽稳定性
  • 针对TLS协议的加密优化
  • 支持新的BFQ的IO调度器,降低云盘的延迟

3.容器服务ACK 结合AliyunLinux2的场景优化:

众所周知,阿里内部几乎所有业务都是容器化的,有着多年的企业级容器场景操作系统优化的经验,通过内核级的优化,让容器任务混布的密度提升的同时不影响在线业务的响应。在AliyunLinux2的操作系统和Kernel中包含了这些优化。容器服务ACK针对这些优化特性,提供了多场景的优化,促进容器化业务跑的更快更平稳:

3.1 容器网络优化

得益于AliyunLinux2的4.19的高内核版本,在AliyunLinux2的节点上,容器服务Terway网络插件支持IPVlan的容器网络模式,在小包的场景下相对传统bridge和策略路由网络性能提升40%。
AliyunLinux2默认是编译了BBR的拥塞控制算法的,在公网访问较多的场景中允许用户修改容器的拥塞控制算法为BBR,提升公网访问的带宽稳定性,在容器的公网连接和跨公网的镜像拉取上性能大幅提升。

3.2 安全容器支持和优化

阿里云与 Kata Container 和 Clear Linux 社区合作,在弹性裸金属实例上,用户可以无缝地部署整套 Kata    Container 的解决方案,并且还优化了 RunV 容器镜像的启动时间,使得 Kata Container 的整体解决方案可以运行良好。容器服务ACK在此之上,提供了和普通集群体验几乎一致的安全沙箱容器集群,让应用运行在一个轻量虚拟机沙箱环境中,适合于多用户间的负载隔离,对不可信应用的隔离。 在提升安全性的同时,对性能影响也做到非常小。

3.3 节点AutoScaler优化

AliyunLinux2针对ECS实例环境大幅优化启动速度,节点的启动时间相对Centos 7的系统降低29%,结合容器服务ACK灵活高效的自动弹性伸缩,在应用压力来临时,容器服务ACK集群会自动根据负载状况创建和启动ECS的节点加入集群,并调度和启动应用实例,AliyunLinux2的快速的扩容启动的能力让计算资源可以急事满足流量峰值的需求。

3.4 CoreDNS优化

针对UDP协议的conntrack表的占用优化,在容器集群中部署密度高了后经常遇到DNS的解析问题,其实大部分是因为DNS查询的UDP协议对conntrack的占用太多不释放导致,而AliyunLinux2中的conntrack的优化可以让同样DNS查询频率的conntrack表占用减少一半,从而大大提高集群中应用DNS查询的成功率。

3.5 更细粒度的资源监控和控制能力

阿里巴巴在多年容器混布的经验中抽象出很多细粒度的资源的控制能力。在AliyunLinux2的内核中也有包含,提供了针对容器场景的PSI压力模型、per-cgroup kswapd、memory priority等的细粒度可视化和控制能力,在AliyunLinux2的容器服务ACK集群中我们可以通过CGroup Controller来利用这些能力,可以实现细粒度BufferIO Control/TCP/CPUSet/Mem/NUMA等细粒度资源的配置和动态更新,在逐步提升资源利用率的同时也能保障应用间的互相干扰降到最低。

3.6 AI和数据加速

AliyunLinux2对大规格机型和多任务的优化可以提升高性能计算任务的速度,对存储的流式读写的优化也可以提高模型大文件的读写性能,综合起来大大加速AI和高性能计算任务的效率,例如在实际测试场景中:

  • 通过Alluxio利用64个线程加载OSS数据1152个文件144G,在CentOS需要3m25s,AliyunLinux2只需2m19.037s,速度是Centos上的1.6倍。
  • 运行ResNet50 Batch 128模型训练,数据缓存到Alluxio中,在CentOS下V100仅仅为5212.00 images/s,在AliyunLinux2下V100可以达到8746.59 images/s,  速度是Centos上的1.7倍。

3.7 其他

  • 基于Linux 4.19的内核将阿里巴巴的多年内核和容器化实践融入其中
  • 降低Overlayfs的性能损耗,减少容器化对存储性能的损失
  • 大量sysctl namespace化,在4.19的内核中大部分sysctl配置都支持在容器中单独设置,比如tcp的超时和重传时间,不同应用有不同的超时和重传的需求,但是在Centos 7的内核中是修改不了的,在AlinyunLinux2中支持对其做Pod级别的配置。

4.如何使用AliyunLinux2作为集群节点系统镜像:

  1. 在阿里云容器服务ACK中创建集群 https://cs.console.aliyun.com/#/k8s/cluster/createV2/managed?template=managed-default
  2. 在创建集群的配置过程中,有个操作系统配置,其中选择 "AliyunLinux2"的操作系统并一键创建集群
  3. 等待集群创建完成后,我们就可以看到集群中的节点为"AliyunLinux2"的操作系统了

PS: 如果是需要对镜像再做一些定制,可以基于AliyunLinux2的镜像再构建自定义镜像使用,容器服务提供了自定义容器服务节点镜像的工具:https://github.com/AliyunContainerService/ack-image-builder

5.总结:

AliyunLinux2的操作系统源自阿里云操作系统团队的精心调校,包含了backport的最新的内核能力,以及阿里巴巴多年的云原生和容器化的经验。容器服务ACK也结合这些特性做了丰富的场景优化,推荐大家使用。此外,容器服务也在结合SOCKMAP和TCP发送接收的零拷贝技术,让ServiceMesh对性能的损失降到最小,提供更好的ServiceMesh能力。

参考:

《Aliyun Linux2产品官网》https://www.alibabacloud.com/zh/products/alinux
《阿里云操作系统及Kernel团队博客》 https://kernel.taobao.org/
《阿里云内核开源官网》https://alibaba.github.io/cloud-kernel/zh/
《体验 AliyunLinux2 不多花一分钱提升15%服务器性能》 https://yq.aliyun.com/articles/701433
《Kubernetes网络的IPVlan方案》https://kernel.taobao.org/2019/11/ipvlan-for-kubernete-net/

相关实践学习
巧用云服务器ECS制作节日贺卡
本场景带您体验如何在一台CentOS 7操作系统的ECS实例上,通过搭建web服务器,上传源码到web容器,制作节日贺卡网页。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
26天前
|
存储 Kubernetes 持续交付
介绍一下Kubernetes的应用场景
【10月更文挑战第18天】介绍一下Kubernetes的应用场景。
115 3
|
2月前
|
容器 云栖大会
|
26天前
|
存储 Kubernetes 监控
深度解析Kubernetes在微服务架构中的应用与优化
【10月更文挑战第18天】深度解析Kubernetes在微服务架构中的应用与优化
97 0
|
2月前
|
负载均衡 大数据 测试技术
docker容器技术有哪些应用场景?
docker容器技术有哪些应用场景?
67 5
|
2月前
|
人工智能 Cloud Native 调度
阿里云容器服务在AI智算场景的创新与实践
2024年云栖大会,我们总结过往支持AI智算基础底座的实践经验、发现与思考,给出《容器服务在AI智算场景的创新与实践》的演讲。不仅希望将所做所想与客户和社区分享,也期待引出更多云原生AI领域的交流和共建。
|
3月前
|
存储 Kubernetes API
在K8S中,etcd 适应的场景?
在K8S中,etcd 适应的场景?
|
3月前
|
Kubernetes 监控 开发者
|
3月前
|
Kubernetes 监控 Cloud Native
"解锁K8s新姿势!Cobra+Client-go强强联手,打造你的专属K8s监控神器,让资源优化与性能监控尽在掌握!"
【8月更文挑战第14天】在云原生领域,Kubernetes以出色的扩展性和定制化能力引领潮流。面对独特需求,自定义插件成为必要。本文通过Cobra与Client-go两大利器,打造一款监测特定标签Pods资源使用的K8s插件。Cobra简化CLI开发,Client-go则负责与K8s API交互。从初始化项目到实现查询逻辑,一步步引导你构建个性化工具,开启K8s集群智能化管理之旅。
53 2
|
3月前
|
运维 Kubernetes 大数据
Kubernetes 的架构问题之在Serverless Container场景下尚不支持资源超售如何解决
Kubernetes 的架构问题之在Serverless Container场景下尚不支持资源超售如何解决
63 0
|
3月前
|
Kubernetes Cloud Native 应用服务中间件
Kubernetes 自动伸缩策略:优化资源利用率
【8月更文第29天】在现代云原生环境中,应用的流量往往具有不可预测性。为了应对这种变化,Kubernetes 提供了多种自动伸缩机制来动态调整应用实例的数量和每个实例分配的资源。本文将深入探讨两种主要的自动伸缩工具:水平 Pod 自动伸缩器 (HPA) 和垂直 Pod 伸缩器 (VPA),并提供实际的应用示例。
98 0

相关产品

  • 容器服务Kubernetes版