HPA自动伸缩
安装metric-server
启用HPA功能首先得安装metric-server(kubernetes 1.11 之后已经完全启用 heapster)
exec
|
1
2
3
4
5
|
unzip metrics-server.zipcd metrics-serverkubectl apply -f .kubectl top node |
使用kubectl top node 能查看到节点资源使用情况是说明安装成功.
编写编排文件
这里以云中心为例
cloud-center-web.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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
apiVersion: apps/v1kind: Deploymentmetadata: namespace: zxy name: cloud-web-serverspec: replicas: 1 selector: matchLabels: app: cloud-web-server strategy: type: "RollingUpdate" rollingUpdate: maxSurge: 1 maxUnavailable: 0 template: metadata: labels: app: cloud-web-server spec: # nodeName: 192.168.1.120 containers: - name: cloud-web-server resources: requests: memory: "1024Mi" cpu: "100m" limits: cpu: "3000m" memory: "1024Mi" image: docker.zhixueyun.com:5000/cloud-center-web-server:v201810261009-master volumeMounts: - mountPath: /log name: cloud-center-web-log - mountPath: /etc/hosts name: hosts - mountPath: /tmp name: cloud-web-datatmp ports: - containerPort: 8080 env: - name: SPRING_APPLICATION_JSON value: '{"spring.rabbitmq.virtual-host": "/","spring.redis.cluster": "false","spring.redis.cluster.nodes": "redis.zxy.svc.cluster.local:6379","spring.fastdfs.tracker-servers": "192.168.1.120:22122","spring.fastdfs.tracker.http-port": "10402","server.context-path": "/api/v1/cloud-center"}' - name: dubbo_registry_address value: 'zookeeper://zookeeper.zxy.svc.cluster.local:2181' - name: dubbo_application_version value: '1' - name: dubbo_protocol_port value: '8080' - name: spring_rabbitmq_host value: 'rabbitmq.zxy.svc.cluster.local' - name: spring_rabbitmq_port value: '5672' - name: spring_rabbitmq_username value: 'guest' - name: spring_rabbitmq_password value: 'guest' - name: graphite_server value: 'graphite.zxy.svc.cluster.local' - name: graphite_port value: '2003' - name: server_port value: '8080' - name: logging_level_org_jooq value: 'DEBUG' volumes: - hostPath: path: /app/contaniner_data/v9_5_8/cloud-center-web name: cloud-center-web-log - hostPath: path: /app/contaniner_data/datatmp-cloud-web name: cloud-web-datatmp - hostPath: path: /etc/hosts name: hosts---apiVersion: v1kind: Servicemetadata: namespace: zxy name: cloud-web-serverspec: type: NodePort ports: - port: 8080 nodePort: 31254 name: cloud-web-server selector: app: cloud-web-server---apiVersion: autoscaling/v1kind: HorizontalPodAutoscalermetadata: namespace: zxy name: cloud-web-server-hpaspec: maxReplicas: 3 minReplicas: 1 scaleTargetRef: apiVersion: "apps/v1" kind: Deployment name: cloud-web-server targetCPUUtilizationPercentage: 80 |
说明:
在原先的基础上改变了Controller,并添加滚动更新策略,限制资源使用大小.上述的例子是以CPU为标准来进行伸缩,也可以以mem来进行,只需要根据改变api-versions来做出相应的变动。
example
|
1
2
|
kubectl apply -f cloud-center-web-server.yamlkubectl get hpa -n zxy #查看hpa状态 |
浙公网安备 33010602011771号