mirror of https://github.com/easzlab/kubeasz.git
更新基础HPA实践文档
parent
ad4ee94a11
commit
1a4bc814d4
|
@ -0,0 +1,56 @@
|
|||
## Horizontal Pod Autoscaling
|
||||
|
||||
自动水平伸缩,是指运行在k8s上的应用负载(POD),可以根据资源使用率进行自动扩容、缩容;我们知道应用的资源使用率通常都有高峰和低谷的时候,`HPA` 就是k8s 上最能体现区别于传统运维的一个优势特性,不仅能够弹性伸缩,而且完全自动化!
|
||||
|
||||
它可以根据 CPU 使用率或应用自定义 metrics 自动扩展 Pod 数量(支持 replication controller、deployment);k8s1.6版本之前是通过kubelet来获取监控指标来判断是否需要扩缩容,1.6版本之后必须通过API server、Heapseter或者kube-aggregator来获取监控指标。
|
||||
|
||||
### Metrics支持
|
||||
|
||||
根据不同版本的API中,HPA autoscale时靠以下指标来判断资源使用率:
|
||||
- autoscaling/v1: CPU
|
||||
- autoscaling/v2alpha1
|
||||
- 内存
|
||||
- 自定义metrics
|
||||
- 多metrics组合: 根据每个metric的值计算出scale的值,并将最大的那个指作为扩容的最终结果
|
||||
|
||||
### 基础示例
|
||||
|
||||
``` bash
|
||||
# 创建deploy和service
|
||||
$ kubectl run php-apache --image=pilchard/hpa-example --requests=cpu=200m --expose --port=80
|
||||
|
||||
# 创建autoscaler
|
||||
$ kubectl autoscale deploy php-apache --cpu-percent=50 --min=1 --max=10
|
||||
|
||||
# 稍等查看hpa状态
|
||||
$ kubectl get hpa php-apache
|
||||
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
|
||||
php-apache Deployment/php-apache 0% / 50% 1 10 1 1d
|
||||
|
||||
# 增加负载
|
||||
$ kubectl run --rm -it load-generator --image=busybox /bin/sh
|
||||
Hit enter for command prompt
|
||||
$ while true; do wget -q -O- http://php-apache; done;
|
||||
|
||||
# 稍等查看hpa显示负载增加,且副本数目增加为4
|
||||
$ kubectl get hpa php-apache
|
||||
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
|
||||
php-apache Deployment/php-apache 430% / 50% 1 10 4 4m
|
||||
|
||||
# 注意k8s为了避免频繁增删pod,对副本的增加速度有限制
|
||||
# 实验过程可以看到副本数目从1到4到8到10,大概都需要4~5分钟的缓冲期
|
||||
$ kubectl get hpa php-apache
|
||||
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
|
||||
php-apache Deployment/php-apache 86% / 50% 1 10 8 9m
|
||||
$ kubectl get hpa php-apache
|
||||
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
|
||||
php-apache Deployment/php-apache 52% / 50% 1 10 10 12m
|
||||
|
||||
# 清除负载,CTRL + C 结束上述负载循环下载程序,过段时间后又缩容到1个副本
|
||||
$ kubectl get hpa php-apache
|
||||
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
|
||||
php-apache Deployment/php-apache 0% / 50% 1 10 1 17m
|
||||
```
|
||||
### 自定义metrics示例
|
||||
|
||||
待更新
|
|
@ -1,6 +1,6 @@
|
|||
## 使用指南
|
||||
|
||||
### 附加组件
|
||||
### 附加组件安装
|
||||
|
||||
- 安装 [kubedns](kubedns.md)
|
||||
- 安装 [dashboard](dashboard.md)
|
||||
|
@ -9,7 +9,12 @@
|
|||
- 安装 efk
|
||||
- 安装 [harbor](harbor.md)
|
||||
|
||||
### 集群维护
|
||||
### 基础特性演示
|
||||
|
||||
- 自动水平伸缩-基础[Horizontal Pod Autoscaling](hpa.md)
|
||||
- 网络安全策略[Network Policy](NetworkPolicy.md)
|
||||
|
||||
### 集群维护指南
|
||||
|
||||
- 集群状态检查
|
||||
- 集群扩容
|
||||
|
|
Loading…
Reference in New Issue