elasticsearch 如何在Kubernetes中实现弹性搜索的集群自动缩放?,elasticsearch,kubernetes,google-kubernetes-engine,elasticsearch,Kubernetes,Google Kubernetes Engine" /> elasticsearch 如何在Kubernetes中实现弹性搜索的集群自动缩放?,elasticsearch,kubernetes,google-kubernetes-engine,elasticsearch,Kubernetes,Google Kubernetes Engine" />

elasticsearch 如何在Kubernetes中实现弹性搜索的集群自动缩放?

elasticsearch 如何在Kubernetes中实现弹性搜索的集群自动缩放?,elasticsearch,kubernetes,google-kubernetes-engine,elasticsearch,Kubernetes,Google Kubernetes Engine,我已经使用我遵循的以下步骤设置了弹性搜索 创建的集群如下所示 gcloud容器群集创建群集-1--启用自动缩放--区域us-central1-c \--数量节点2 \--最小节点1 \--最大节点5 使用custom values.yaml安装弹性搜索 helm安装elasticsearch elastic/elasticsearch-f./values.yaml 价值观 创建索引并将文档插入数据库 curl-X PUT“http://elasticsearch.mydomain.com/

我已经使用我遵循的以下步骤设置了弹性搜索

  • 创建的集群如下所示

    gcloud容器群集创建群集-1--启用自动缩放--区域us-central1-c \--数量节点2 \--最小节点1 \--最大节点5

  • 使用custom values.yaml安装弹性搜索

  • helm安装elasticsearch elastic/elasticsearch-f./values.yaml

    价值观


  • 创建索引并将文档插入数据库

    curl-X PUT“http://elasticsearch.mydomain.com/company“-H'内容类型:application/json'-d” { “设置”:{ “碎片数”:1, “复制副本的数量”:1 }, “映射”:{ “财产”:{ “年龄”:{“类型”:“整数”}, “experienceInYears”:{“type”:“integer”}, “名称”:{“类型”:“文本”} } } } "

    curl-X PUT“http://elasticsearch.mydomain.com/company/_doc/1“-H'内容类型:application/json'-d” { “姓名”:“约翰”, “年龄”:30岁, “体验耳朵”:6 } "

  • 现在我想发送批量搜索请求,在弹性搜索盒上生成负载。所以我写了下面的shell脚本,并尝试从多个终端执行

  • `

    `

  • 现在,当我发送批量请求时,应该创建新节点(kubernetes集群自动伸缩),但它只显示2个节点。可能是因为没有超过200米的cpu限制

     kubectl get nodes
     NAME                                       STATUS   ROLES    AGE   VERSION
     gke-cluster-1-default-pool-d6891b13-flf9   Ready    <none>   18h   v1.14.10-gke.36
     gke-cluster-1-default-pool-d6891b13-hw2x   Ready    <none>   18h   v1.14.10-gke.36
    
     kubectl top pods
     NAME                                                              CPU(cores)   MEMORY(bytes)
     elasticsearch-master-0                                            160m          371Mi
     ingress-elastic-search-test-ingress-nginx-controller-5c96ctthr2   25m           68Mi
    
    kubectl获取节点
    姓名状态角色年龄版本
    gke-cluster-1-default-pool-d6891b13-flf9就绪18h v1.14.10-gke.36
    gke-cluster-1-default-pool-d6891b13-hw2x Ready 18h v1.14.10-gke.36
    kubectl顶部吊舱
    名称CPU(核心)内存(字节)
    elasticsearch-master-0 160m 371Mi
    ingress-elastic-search-test-ingress-nginx-controller-5c96ctthr2 25m 68Mi
    

  • 因此,如何根据负载自动伸缩弹性搜索集群。如何在弹性搜索吊舱上生成负载?

    这是否回答了您的问题?您需要使Elasticsearch创建更多副本。扩展不一定很复杂,但扩展很困难,需要特定于数据库的知识,并且相对于负载的变化可能需要很长时间。确定群集自动扩展在弹性搜索中不可能吗?你是说我应该使用副本而不是群集自动缩放?如果POD的资源请求需要,群集自动缩放会导致群集创建更多节点。这里需要pod自动缩放,这对于Elasticsearch来说很棘手(我在链接的问题中对此进行了详细说明)。这是否回答了您的问题?您需要使Elasticsearch创建更多副本。扩展不一定很复杂,但扩展很困难,需要特定于数据库的知识,并且相对于负载的变化可能需要很长时间。确定群集自动扩展在弹性搜索中不可能吗?你是说我应该使用副本而不是群集自动缩放?如果POD的资源请求需要,群集自动缩放会导致群集创建更多节点。这里需要pod自动缩放,这对于Elasticsearch来说很棘手(我在链接的问题中对此进行了详细说明)。
    #!/bin/bash
    i=0 # set counter to 0
    while true # infinite loop
    do   
        curl -X GET "http://elasticsearch.mydomain.com/company/_search?pretty" -H 'Content-Type: application/json' -d'
        {
            "query" : {
                "match" : { "name" : "John" }
            }
        }' 
        if [ $? -ne 0 ]
        then
            # curl didn't return 0 - failure
            echo $i
            break # terminate loop
        fi
        i=$(($i+1))  # increment counter
        echo -en "$i        \r"   # display # of requests each iteration
        sleep 0.25  # short pause between requests
    done
    
     kubectl get nodes
     NAME                                       STATUS   ROLES    AGE   VERSION
     gke-cluster-1-default-pool-d6891b13-flf9   Ready    <none>   18h   v1.14.10-gke.36
     gke-cluster-1-default-pool-d6891b13-hw2x   Ready    <none>   18h   v1.14.10-gke.36
    
     kubectl top pods
     NAME                                                              CPU(cores)   MEMORY(bytes)
     elasticsearch-master-0                                            160m          371Mi
     ingress-elastic-search-test-ingress-nginx-controller-5c96ctthr2   25m           68Mi