ack-autoscaling-placeholder为集群的自动扩展提供了缓冲区,它适用于工作负载需要快速启动而无需考虑节点资源不足的使用场景。本文介绍如何使用ack-autoscaling-placeholder实现容器秒级伸缩。
前提条件
您已为ACK集群开通自动伸缩。关于开通自动伸缩的操作步骤,请参见节点自动伸缩。
操作步骤
-
登录容器服务管理控制台。
-
在控制台左侧导航栏,选择市场 > 应用市场。
-
在应用目录页签,搜索ack-autoscaling-placeholder,然后单击ack-autoscaling-placeholder。
-
在ack-autoscaling-placeholder页面,单击一键部署。
-
在创建面板,选择集群和命名空间,然后单击下一步。选择Chart版本,编辑参数,然后单击确定。
创建成功后,在应用 > Helm页面,可查看到该应用状态为已部署。
-
在集群管理页左侧导航栏,选择应用 > Helm。
-
在Helm页面,单击ack-autoscaling-placeholder操作列的更新。然后在更新发布面板中,更新YAML,然后单击确定。
nameOverride: "" fullnameOverride: "" ## priorityClassDefault: enabled: true name: default-priority-class value: -1 ## deployments: - name: ack-place-holder replicaCount: 1 containers: - name: placeholder image: registry-vpc.cn-shenzhen.aliyuncs.com/acs/pause:3.1 pullPolicy: IfNotPresent resources: requests: cpu: 4 #资源占位4C8G memory: 8 imagePullSecrets: {} annotations: {} nodeSelector: #节点选择 demo: "yes" tolerations: [] affinity: {} labels: {}
-
部署工作负载的PriorityClass。
本文示例定义一个优先级较高的PriorityClass。
kubectl apply -f priorityClass.yaml
apiVersion: scheduling.k8s.io/v1 kind: PriorityClass metadata: name: high-priority value: 1000000 #配置优先级。 globalDefault: false description: "This priority class should be used for XYZ service pods only."
-
部署实际的工作负载。
kubectl apply -f workload.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: placeholder-test labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: nodeSelector: #节点选择。 demo: "yes" priorityClassName: high-priority #这里写入第8步配置的PriorityClass名称。 containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80 resources: requests: cpu: 3 #实际负载的资源需求。 memory: 5
从下图可以看到,实际工作负载由于Pod配置了高优先级的PriorityClass。当节点资源不足时,会将占位容器placeHolder进行驱逐,此时占位容器placeHolder处于Pending状态。由于集群开通了自动伸缩,此状态会触发ACK集群进行扩容。实现了工作负载的秒级弹出。
实现原理
使用优先级非常低(负数)的占位容器来超额配置,以保留其他Pod可以使用的资源。如果集群没有可用的资源,真正的工作负载也会将占位容器所占用的资源抢占,实现快速启动,然后结合同时使用Cluster-Autoscaler,迫使集群进行节点维度的扩展。
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/156954.html