阿里云容器服务弹性伸缩发布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
相关文章
|
12月前
|
存储 弹性计算 安全
阿里云轻量服务器通用型、CPU优化型、多公网IP型、国际型、容量型不同实例区别与选择参考
阿里云轻量应用服务器实例类型分为通用型、CPU优化型、多公网IP型、国际型、容量型,不同规格族的适用场景和特点不同,收费标准也不一样。本文为大家介绍轻量应用服务器通用型、多公网IP型、容量型有何区别?以及选择参考。
|
11月前
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
1100 3
|
12月前
|
弹性计算 数据中心 UED
阿里云弹性公网IP线路类型【BGP(多线)_精品】是什么意思?
阿里云弹性公网IP的BGP(多线)_精品线路是一种优化海外回中国内地流量的公网线路,具备低时延、高稳定性优势,适用于中国内地用户访问海外部署的业务,如Web服务在中国香港等地域时,可显著提升访问体验。支持按量付费和包年包月模式,地域覆盖中国香港及多个亚太地区。
2199 1
|
Cloud Native Serverless 数据中心
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
522 10
|
Kubernetes 持续交付 开发工具
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
1103 2
|
安全 持续交付 云计算
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云容器服务以服务化形式构建容器基础设施,大幅提升开发效率,简化应用部署流程。通过Docker容器和DevOps工具(如Jenkins),实现自动化部署与迭代,优化企业内部复杂部署问题。该服务支持GPU调度、混合云架构无缝迁移,并与阿里云产品体系无缝集成,提供安全防护、网络负载均衡等多重功能支持。凭借微服务架构,帮助企业突破业务瓶颈,提高资源利用率,轻松应对海量流量。
548 0
课时5:阿里云容器服务:最原生的集成Docker和云服务
|
弹性计算 监控 持续交付
面对热点事件,阿里云如何通过云上弹性与容器服务帮助客户应对流量洪峰
面对热点事件,阿里云如何通过云上弹性与容器服务帮助客户应对流量洪峰
465 0
|
边缘计算 调度 对象存储
部署DeepSeek但IDC GPU不足,阿里云ACK Edge虚拟节点来帮忙
部署DeepSeek但IDC GPU不足,阿里云ACK Edge虚拟节点来帮忙
420 0
|
监控 Cloud Native Java
基于阿里云容器服务(ACK)的微服务架构设计与实践
本文介绍如何利用阿里云容器服务Kubernetes版(ACK)构建高可用、可扩展的微服务架构。通过电商平台案例,展示基于Java(Spring Boot)、Docker、Nacos等技术的开发、容器化、部署流程,涵盖服务注册、API网关、监控日志及性能优化实践,帮助企业实现云原生转型。

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版
  • 推荐镜像

    更多