《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.1.Elastic Stack 安装部署——3.4.1.8. ECK 安装(16) https://developer.aliyun.com/article/1231264
部署 Elasticsearch
定义 Elasticsearch 资源文件,通过 annotations 定义自动缩放策略:
l name:用于标识自动缩放策略的名称。
l roles:此策略适用的节点角色,Elasticsearch 资源中必须至少存在一个具有完全相同角色集的 NodeSet。
l resources 定义计算资源使用量的上限和下限:
○ nodeCount:节点数量的上限和下限。
○ cpu:每个节点使用 cpu 的上限和下限。
○ memory:每个节点使用内存的上限和下限。
storage:每个节点存储容量的上限和下限。
当节点使用资源达到阈值时,ECK 首先会尝试为节点增加资源(CPU、内存、存储),当每个节点都达到单个节点使用资源的限制时,ECK 开始横向扩容节点数量。横向扩容是最快速的,因此建议将 CPU、内存、存储资源的 min 和 max 的值设置成一样。
apiVersion: elasticsearch.k8s.elastic.co/v1 kind: Elasticsearch metadata: name: autoscaling-elasticsearch annotations: elasticsearch.alpha.elastic.co/autoscaling-spec: | { "pollingPeriod": "10s", "policies": [{ "name": "di", "roles": ["data", "ingest" , "transform"], "deciders": { "proactive_storage": { "forecast_window": "5m" } }, "resources": { "nodeCount": { "min": 3, "max": 8 }, "cpu": { "min": 2, "max": 2 }, "memory": { "min": "2Gi", "max": "2Gi" }, "storage": { "min": "20Gi", "max": "20Gi" } } }] } spec: version: 7.14.0 nodeSets: - name: master count: 3 config: node: roles: [ "master" ] volumeClaimTemplates: - metadata: name: elasticsearch-data spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi storageClassName: alicloud-disk-efficiency - name: di config: node: roles: [ "data", "ingest", "transform" ] volumeClaimTemplates: - metadata: name: elasticsearch-data spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi storageClassName: alicloud-disk-efficiency
使用以下命令应用 Elasticsearch 资源文件:
kubectl apply -f elasticsearch.yaml
查看创建的 Elasticsearch 节点,刚开始节点数量是指定的最小值,当节点使用资源达到阈值时,才会横向扩容。
> kubectl get pod NAME READY STATUS RESTARTS AGE autoscaling-elasticsearch-es-di-0 1/1 Running 0 11m autoscaling-elasticsearch-es-di-1 1/1 Running 0 11m autoscaling-elasticsearch-es-di-2 1/1 Running 0 11m autoscaling-elasticsearch-es-master-0 1/1 Running 0 11m autoscaling-elasticsearch-es-master-1 1/1 Running 0 11m autoscaling-elasticsearch-es-master-2 1/1 Running 0 11m
清理现场
kubectl delete -f autoscaling/
《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.1.Elastic Stack 安装部署——3.4.1.8. ECK 安装(18) https://developer.aliyun.com/article/1231262