暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OKE新功能:Cluster Autoscaler集群节点自动扩缩

1456

提起自动扩缩,顾名思义是根据用户的业务需求和策略,自动调整其弹性资源的管理服务,自动扩缩带来的优势有:

从应用开发者的角度:能够让应用程序开发者专注实现业务功能,无需过多考虑系统层资源。

从系统运维者的角度:极大的降低运维负担,如果系统设计合理可以实现“零运维”。

在Kubernetes中关于弹性伸缩主要有三种方式:

HPA:HorizontalPod Autoscaler可以根据CPU利用率自动伸缩一个Replication Controller、Deployment 或者Replica Set中的Pod数量。

VPA:VerticalPod Autoscaler使用户无需为其pods中的容器设置最新的资源request。配置后,它将根据使用情况自动设置Request,从而允许在节点上进行适当的调度,以便为每个Pod提供适当的资源量。

CA:Cluster Autoscaler自动伸缩Node节点,CA 是一个可以自动伸缩集群 Node 的组件。如果集群中有未被调度的 Pod,它将会自动扩展 Node 来使 Pod 可用,或是在发现集群中的 Node 资源使用率过低时,删除 Node 来节约资源。

Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE) 是适用于Oracle云基础架构容器引擎, 是一项完全托管,可扩展且高度可用的服务,可用于将容器化的应用程序部署到云中。目前OKE已经支持HPA/VPA和CA三种弹性伸缩方式,通过 HPA 伸缩无状态应用,VPA 伸缩有状态应用,CA 保证计算资源,它们的配合使用,构成了一个完整的自动伸缩解决方案。下面主要对针对OKE近期GA的新功能Cluster Autoscaler 进行介绍。

如上图所示 , OKE的Cluster AutoScaler会根据工作负载需求自动调整Kubernetes群集的节点池的大小。当集群容量不足时,它会自动去创建新的 Node,而在 Node 长时间资源利用率很低时自动将其删除以节省开支,这有助于确保工作负载可用性并优化成本。当由于资源不足而无法在群集中调度Pod时,CA的工作原理是添加节点,并删除长时间未充分利用的节点,以及可以将其Pod放置在其他现有节点上的节点。CA会根据资源请求(而不是运行节点池中运行节点的Pod的资源利用率)自动增加或减小节点池的大小。如果无法正常抽干(Drain)节点,则将在超时后强制终止该节点。CA基于每个节点池工作。用户为每个节点池指定一个最小和最大数值,并使用扩展器选项来指定他们希望扩展/收缩的目标节点池以及进行自动扩展的方式。

在OCI上使用OKE CA功能主要分为三步:

1. 创建动态组,分配权限

创建一个动态组,该动态组具有适用于业务需求的隔离专区的匹配规则,并设置一个策略,该策略允许OKE实例管理节点池以及与初始化工作程序节点有关的其他策略语句。

配置策略, 允许OKE实例管理集群节点池和其他与初始化工作器节点有关的策略语句。

2. 发布CA Pod 到Kubernetes集群

使用OCI提供的cluster-autoscaler.yaml文件,发布CA 到OKE实例,在发布之前,需要根据当前OKE环境,对cluster-autoscaler.yaml 文件进行相应修改。

container-images标签指定ca镜像的下载地址

command -- nodes标签指定资源池Node Pool的最大最小值,以及资源池的OCID

3. 发布应用到Kubernetes集群

管理员或者开发人员可以从命令行工具或者CI/CD工具将容器应用发布到OKE实例中,CA将根据资源情况自动管理Node Pool的工作节点。

使用OKE CA功能注意事项:

注意事项1:

如果OKE CA删除或移动了资源,则工作负载可能会中断。在使用CA之前,应设计工作负载以承受潜在的中断。可以使用“Pod中断预算(Pod Disruption Budget)”之类的工具来完成此操作。

注意事项2:

使用OKE CA时,用户或管理员不应手动手动管理由CA处理的节点。用户不应手动扩缩工作节点,添加标签和标记污染节点。这些操作可能会被CA覆盖,或者可以修改其行为。

注意事项3:

从节点池中删除节点时,OKE CA将遵循Pod调度和逐出规则。这些限制可以防止CA删除节点。

欢迎登陆Oracle OCI Console体验更多OKE功能。


作者简介

向志华,甲骨文云架构团队高级咨询顾问,专注 Application PaaS 产品及服务,同时关注Docker容器产品及Kubernetes容器调度产品方向。13年IT行业从业经验,擅长J2EE产品架构及开发,参与过Openstack相关产品研发工作。您可以通过george.xiang@oracle.com,与他联系。


扫描二维码或点击阅读原文

快速预约精选云解决方案演示

文章转载自甲骨文开发者社区,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论