阿里云容器服务弹性伸缩发布EIP支持助力在线视频与游戏场景

简介: ## 背景 疫情期间,在线会议等音视频应用面临大量流量冲击,为了获得更好的网路吞吐性能,常常会选择使用Host网络模型。采用Host网络模型的容器可以直接使用宿主机的IP地址与外界进行通信,若宿主机具有[弹性公网IP](https://help.aliyun.com/document_detail/32321.html),容器也能使用这个弹性公网IP进行通信。同时容器内服务的端口也可以使用宿

背景

疫情期间,在线会议等音视频应用面临大量流量冲击,为了获得更好的网路吞吐性能,常常会选择使用Host网络模型。采用Host网络模型的容器可以直接使用宿主机的IP地址与外界进行通信,若宿主机具有弹性公网IP,容器也能使用这个弹性公网IP进行通信。同时容器内服务的端口也可以使用宿主机的端口,无需额外进行NAT转换,而且由于容器通信时,不再需要通过Linux bridge等方式转发或者数据包的拆封,性能上有很大优势。
使用弹性公网IP的方式,通过弹性公网IP与端口的方式直接与终端进行通信,能大大提升网络性能,但弹性公网IP作为一种有限且收费的资源,在实际使用时还需要进行资源规划和成本计算。自动弹性伸缩在这方面有天然的优势,在保证服务质量的同时自动伸缩节点及其资源。自动伸缩与弹性公网IP结合的方案能够实现成本与性能之间较好地平衡。
为将自动伸缩与弹性公网IP结合,自动伸缩在节点伸缩的同时管理和操作节点的弹性公网IP。在自动伸缩组创建或修改时选择绑定弹性公网IP后,自动地创建伸缩组的生命周期挂钩。绑定弹性公网IP的生命周期挂钩负责在扩容出节点后自动生成弹性公网IP并与该节点进行绑定,保证了节点启用时就具备弹性公网IP,以便加入集群时即可通过弹性公网IP和端口提供服务;释放弹性公务IP的生命周期挂钩负责在节点缩容退出集群时应该自动释放弹性公网IP,以免造成资源的浪费。自动伸缩绑定弹性公网IP后,在自动扩容/缩容时对生成/释放的ecs自动绑定/解绑弹性公网IP,用户既可提升网络性能,又不再需要额外的对节点弹性公网IP进行手动操作。

使用前请了解以下限制:

  • 自动绑定弹性公网IP需要给集群worker role赋予必要的权限策略,否则会导致自动绑定弹性公网IP失败;
  • 直接删除自动伸缩组或是直接将ecs删除,无法自动释放被绑定的弹性公网IP。



使用方法

前提条件

具备一个Kubernetes集群,请参考创建集群文档
更多注意事项请见文档

创建自动伸缩

在容器服务控制台的集群列表页面,选择所需的集群并单击操作列的更多 > 自动伸缩
image.png
安装弹框提示,进行授权操作

a. 开通ess服务

1) 单击弹出对话框中的第一个链接,进入弹性伸缩服务ESS页面。
2) 单击开通ESS服务,进入云产品开通页
3) 选中我已阅读并同意复选框,单击立即开通

4) 开通成功后,在开通完成页签,单击管理控制台,进入弹性伸缩服务ESS页面。

5) 单击前往授权,进入云资源访问授权页面,配置对云资源的访问权限。

6) 单击同意授权

预期结果
页面自动跳转至弹性伸缩控制台,说明授权成功。关闭页面。

b. 配置授权角色

1)在自动伸缩组的集群详情页,找到集群的WorkerRamRole
image.png
2)在权限管理页签,单击目标授权策略名称,进入授权策略详情页面。

3)单击修改策略内容,从右侧滑出侧边栏修改策略内容页面。

4)在策略内容Action字段中补充以下策略。
说明 在策略内容的任意一个Action字段的最后一行补充再添加以下内容。

"ecs:AllocateEipAddress",
"ecs:AssociateEipAddress",
"ecs:DescribeEipAddresses",
"ecs:DescribeInstanceTypes",
"ecs:DescribeInvocationResults",
"ecs:DescribeInvocations",
"ecs:ReleaseEipAddress",
"ecs:RunCommand",
"ecs:UnassociateEipAddress",
"ess:CompleteLifecycleAction",
"ess:CreateScalingRule",
"ess:DeleteScalingRule",
"ess:Describe*",
"ess:DetachInstances",
"ess:ExecuteScalingRule",
"ess:ModifyScalingGroup",
"ess:ModifyScalingRule",
"ess:RemoveInstances",
"vpc:AllocateEipAddress",
"vpc:AssociateEipAddress",
"vpc:DescribeEipAddresses",
"vpc:DescribeVSwitches",
"vpc:ReleaseEipAddress",
"vpc:UnassociateEipAddress"

5)在RAM角色管理详情页,单击信任策略管理,在修改信任策略中添加oos.aliyuncs.com,如下图所示。

6)单击确认

c. 启用自动伸缩

image.png

配置自动伸缩

缩容配置

自动伸缩页面,配置以下信息,并单击提交image.png

选择弹性伸缩的资源类型

image.png

配置伸缩组

各配置项含义请见下表。

配置 说明
专有网络 所创建伸缩组的网络,与伸缩组所在集群的网络一致。
虚拟交换机 所创建伸缩组的虚拟交换机,包含伸缩组的可用区及Pod地址段。
实例规格 伸缩组内实例的规格。
已选规格 所选择的伸缩组的实例规格,最多可以选择10种实例规格。
系统盘 伸缩组的系统盘。
挂载数据盘 是否在创建伸缩组时挂载数据盘,默认情况下不挂载。
实例数量 伸缩组所包含的实例数量。
说明
- 实例不包含客户已有的实例。
- 默认情况,实例的最小值是0台,超过0台的时候,集群会默认向伸缩组中添加实例,并将实例加入到伸缩组对应的Kubernetes集群中。
密钥对 登录伸缩后的节点时所使用的密钥对。可以在ECS控制台新建密钥对。
说明 目前只支持密钥对方式登录。
伸缩模式 支持标准模式极速模式
RDS白名单 弹性伸缩后的节点可以访问的RDS实例。
节点标签 在集群中添加节点标签(Label)后,会自动添加到弹性伸缩扩容出的节点上。
污点(Taints) 添加污点后,Kubernetes将不会将Pod调度到这个节点上。
云监控组件 是否在扩容的同时安装云监控组件,默认不安装。

配置绑定eip

  1. 点击显示高级选项
    image.png
    b. 勾选绑定eip,按需配置计费方式和带宽峰值,默认值如下图所示
    image.png

点击“确定”,让配置生效

预期效果

自动弹性伸缩组成功创建后,点击自动弹性伸缩列表中的伸缩组名跳转到伸缩组详情页面
image.png
点击生命周期挂钩,可见绑定和解绑eip的生命周期挂钩都已创建成功

查看自动伸缩结果image.png

在自动伸缩组扩容出的ecs详情页面可以看到已经绑上的弹性公网IP,说明扩容绑定弹性公网IP成功。
image.png
缩容后在专有网络弹性公网IP页面,可以查看到对应的弹性公网IP已经不存在,说明释放弹性公网IP成功。

最后

通过自动伸缩绑定弹性公网IP的实现,后续节点对外通信相关地需求应该都能借力于此。自动伸缩与伸缩组的生命周期挂钩的结合使用在这次实践中也体现出1+1大于2的效果,为后续有关丰富自动伸缩组对扩/缩容出的节点的操作提供了方案选择。

相关实践学习
使用ACS算力快速搭建生成式会话应用
阿里云容器计算服务 ACS(Container Compute Service)以Kubernetes为使用界面,采用Serverless形态提供弹性的算力资源,使您轻松高效运行容器应用。本文将指导您如何通过ACS控制台及ACS集群证书在ACS集群中快速部署并公开一个容器化生成式AI会话应用,并监控应用的运行情况。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
3月前
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
419 2
|
9月前
|
安全 持续交付 云计算
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云容器服务以服务化形式构建容器基础设施,大幅提升开发效率,简化应用部署流程。通过Docker容器和DevOps工具(如Jenkins),实现自动化部署与迭代,优化企业内部复杂部署问题。该服务支持GPU调度、混合云架构无缝迁移,并与阿里云产品体系无缝集成,提供安全防护、网络负载均衡等多重功能支持。凭借微服务架构,帮助企业突破业务瓶颈,提高资源利用率,轻松应对海量流量。
341 0
课时5:阿里云容器服务:最原生的集成Docker和云服务
|
9月前
|
人工智能 Kubernetes Serverless
阿里云向全球客户推出创新容器计算服务ACS,可降低算力成本高达55%
阿里云向全球客户推出创新容器计算服务ACS,可降低算力成本高达55%
|
10月前
|
弹性计算 监控 持续交付
面对热点事件,阿里云如何通过云上弹性与容器服务帮助客户应对流量洪峰
面对热点事件,阿里云如何通过云上弹性与容器服务帮助客户应对流量洪峰
250 0
|
10月前
|
监控 Cloud Native Java
基于阿里云容器服务(ACK)的微服务架构设计与实践
本文介绍如何利用阿里云容器服务Kubernetes版(ACK)构建高可用、可扩展的微服务架构。通过电商平台案例,展示基于Java(Spring Boot)、Docker、Nacos等技术的开发、容器化、部署流程,涵盖服务注册、API网关、监控日志及性能优化实践,帮助企业实现云原生转型。
|
12月前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
10月前
|
监控 Kubernetes Cloud Native
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。
|
10月前
|
弹性计算 人工智能 资源调度
DeepSeek大解读系列公开课上新!阿里云专家主讲云上智能算力、Kubernetes容器服务、DeepSeek私有化部署
智猩猩「DeepSeek大解读」系列公开课第三期即将开讲,聚焦阿里云弹性计算助力大模型训练与部署。三位专家将分别讲解智能算力支撑、Kubernetes容器服务在AI场景的应用实践、以及DeepSeek一键部署和多渠道应用集成,分享云计算如何赋能大模型发展。欲观看直播,可关注【智猩猩GenAI视频号】预约。 (239字符)
|
12月前
|
人工智能 运维 Kubernetes
阿里云容器服务AI助手2.0 - 新一代容器智能运维能力
2024年11月,阿里云容器服务团队进一步深度融合现有运维可观测体系,在场景上覆盖了K8s用户的全生命周期,正式推出升级版AI助手2.0,旨在更好地为用户使用和运维K8S保驾护航。
|
人工智能 运维 监控
阿里云ACK容器服务生产级可观测体系建设实践
本文整理自2024云栖大会冯诗淳(花名:行疾)的演讲,介绍了阿里云容器服务团队在生产级可观测体系建设方面的实践。冯诗淳详细阐述了容器化架构带来的挑战及解决方案,强调了可观测性对于构建稳健运维体系的重要性。文中提到,阿里云作为亚洲唯一蝉联全球领导者的容器管理平台,其可观测能力在多项关键评测中表现优异,支持AI、容器网络、存储等多个场景的高级容器可观测能力。此外,还介绍了阿里云容器服务在多云管理、成本优化等方面的最新进展,以及即将推出的ACK AI助手2.0,旨在通过智能引擎和专家诊断经验,简化异常数据查找,缩短故障响应时间。
阿里云ACK容器服务生产级可观测体系建设实践

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版