美文网首页
使用阿里云kubernetes部署ElasticSearch生产

使用阿里云kubernetes部署ElasticSearch生产

作者: 皮蛋XXXXL | 来源:发表于2018-05-01 18:42 被阅读0次

    市面上kubernetes没有提供比较好的ElasticSearch集群配置。

    这里基于 pires
    尝试写了一个。
    1 使用elastic.io官方的镜像,默认包含x-pack。
    2 使用elasticsearch5.6.9版本,兼容spring-boot 2.0和spring-data-elasticsearch 3.0.6
    各大社区对于elastic更新太快,明显跟不上节奏
    3 使用阿里云的LoadBalancer(即负载均衡产品)

    事前准备:
    1 生产集群最少需要3个master,2个data, 1个client。共计6个。因此部署前应准备充足的node节点
    2 镜像的docker建议自行编译和上传。
    3 决定使用公开公网的LoadBalancer还是内网。
    需要编辑
    https://github.com/togetu/kubernetes-elasticsearch-cluster/blob/aliyun/es-svc.yaml

    annotations:
        # 如果公开到公网,注释掉此行
        service.beta.kubernetes.io/alicloud-loadbalancer-address-type: intranet
        #可以使用已经创建好的负载均衡,否则就注释掉,会自动新建
        #service.beta.kubernetes.io/alicloud-loadbalancer-id: your-loadbalancer-id
    

    阿里云官方帮助也有相关描述,请参照

    4 阿里云云盘选择
    阿里云提供PVC的默认设置,分4个
    alicloud-disk-common 高效云盘
    alicloud-disk-efficiency 高速云盘
    alicloud-disk-ssd SSD
    alicloud-disk-available 自动选择最优
    4个不是都支持,要看当时所在region都库存。 因此alicloud-disk-available自动选择成功率最高。
    另外大小也有限制,配置过小不会自动创建成功。保守设置最小20Gi。数据类应用应该设置大一点。

      volumeClaimTemplates:
      - metadata:
          name: storage
        spec:
          #阿里云盘类型
          storageClassName: alicloud-disk-available
          accessModes: [ ReadWriteOnce ]
          resources:
            requests:
             #不能过小,否则不会创建成功。
              storage: 40Gi
    

    https://github.com/togetu/kubernetes-elasticsearch-cluster/blob/aliyun/stateful/es-data-stateful.yaml#L72

    使用:

    kubectl create -f es-discovery-svc.yaml
    kubectl create -f es-svc.yaml
    kubectl create -f es-master.yaml
    kubectl rollout status -f es-master.yaml
    kubectl create -f es-client.yaml
    kubectl rollout status -f es-client.yaml
    kubectl create -f stateful/es-data-svc.yaml
    kubectl create -f stateful/es-data-stateful.yaml
    

    创建成功后,等待所有pod部署完成。
    kubectl get svc 查看

    elasticsearch             LoadBalancer   172.21.8.3      xxxxxx  9200:30238/TCP   7d
    

    根据创建都负载均衡是内网还是公网,访问url确认即可

    curl xxxxxx:9200/_cluster/health?pretty=true
    

    至此结束

    附录:
    文中提到所有yaml文件位置
    https://github.com/togetu/kubernetes-elasticsearch-cluster/tree/aliyun

    相关文章

      网友评论

          本文标题:使用阿里云kubernetes部署ElasticSearch生产

          本文链接:https://www.haomeiwen.com/subject/wskfrftx.html