-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path06_autoscale.yaml
50 lines (45 loc) · 1.68 KB
/
06_autoscale.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
## Configuração para escalar a quantidade de Pods da aplicação automaticamente.
## Quando configuramos esse objeto, a propriedade Replicas no Deployment é ignorada.
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: example-hpa
namespace: example-ns
labels:
## Labels comuns - https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels/
app.kubernetes.io/name: example-app
app.kubernetes.io/instance: example-app-1
app.kubernetes.io/version: "4.0.0"
app.kubernetes.io/component: api
app.kubernetes.io/part-of: example-app
app.kubernetes.io/managed-by: manual
app.kubernetes.io/created-by: manual
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: example-deployment
## Quantidade minima de Pods. Substitui o valor configurado no objeto Deployment.
minReplicas: 1
maxReplicas: 6
metrics:
## Usar uma métrica customizada que a aplicação informa em um endpoint de metricas.
## Isso é possível usando o prometheus e o prometheus-adapter
- type: Pods
pods:
metric:
name: application_httprequests_active
target:
## Se o valor médio de requisições por Pod estiver acima de 10,
## o AutoScaler irá aumentar a quantidade de Pods até chegar na média.
## Se estiver abaixo, o AutoScaler irá diminuir a quantidade de Pods.
type: AverageValue
averageValue: "10"
## Usar métrica da cpu para definir se o k8s deve acionar o autoscale
## Cpu é coletada automaticamente pelo k8s.
# - type: Resource
# resource:
# name: cpu
# target:
# type: Utilization
# averageUtilization: 50