ASK支持在控制台界面上快速创建支持HPA的应用,实现容器资源的弹性伸缩。您也可通过定义HPA(Horizontal Pod Autoscaling)的YAML来进行配置。
通过容器服务控制台创建HPA应用
通过kubectl命令进行
您也可通过编排模板来手动创建HPA,并将其绑定到要伸缩的Deployment对象上,通过kubectl命令实现容器自动伸缩配置。
下面针对一个Nginx应用进行举例。
ASK支持在控制台界面上快速创建支持HPA的应用,实现容器资源的弹性伸缩。您也可通过定义HPA(Horizontal Pod Autoscaling)的YAML来进行配置。
配置项 | 描述 |
---|---|
命名空间 | 在页面顶部设置应用部署所处的命名空间,默认使用default命名空间。 |
应用名称 | 设置应用的名称。 |
副本数量 | 即应用包含的Pod数量,默认数量为2。 |
类型 | 定义资源对象的类型,可选择无状态、有状态、任务、定时任务、守护进程集。 |
标签 | 为该应用添加一个标签,标识该应用。 |
注解 | 为该应用添加一个注解(annotation)。 |
单击查看应用详情或者在工作负载 > 无状态中单击应用名称或操作列的详情,单击容器组水平伸缩,您可在部署的详情中查看伸缩组信息。
您也可通过编排模板来手动创建HPA,并将其绑定到要伸缩的Deployment对象上,通过kubectl命令实现容器自动伸缩配置。
下面针对一个Nginx应用进行举例。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9 # replace it with your exactly <image_name:tags>
ports:
- containerPort: 80
resources:
requests: ##必须设置,不然HPA无法运行。
cpu: 500m
kubectl create -f nginx.yml
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: nginx-hpa
namespace: default
spec:
scaleTargetRef: ##绑定名为nginx的Deployment。
apiVersion: apps/v1
kind: Deployment
name: nginx
minReplicas: 1
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
targetAverageUtilization: 50
kubectl describe hpa name
会发现有类似以下的警告信息。Warning FailedGetResourceMetric 2m (x6 over 4m) horizontal-pod-autoscaler missing request for cpu on container nginx in pod default/nginx-deployment-basic-75675f5897-mqzs7
Warning FailedComputeMetricsReplicas 2m (x6 over 4m) horizontal-pod-autoscaler failed to get cpu utilization: missing request for cpu on container nginx in pod default/nginx-deployment-basic-75675f5
kubectl describe hpa name
命令。Normal SuccessfulRescale 39s horizontal-pod-autoscaler New size: 1; reason: All metrics below target
此时当Nginx的Pod的利用率超过本例中设置的50%利用率时,则会进行水平扩容,低于50%的时候会进行缩容。
在文档使用中是否遇到以下问题
更多建议
匿名提交