elasticsearch ECK(Elastic Cloud on Kubernetes)重启容器,不使用kubectl delete

zc0qhyus  于 2023-10-17  发布在  ElasticSearch
关注(0)|答案(3)|浏览(123)

有没有一种方法可以在不使用kubectl delete的情况下重新启动Elasticsearch集群?
上下文是我没有权限运行任何SQL命令(包括kubectl命令),我只能通过kustomize部署yaml文件。我现在想在现有容器中安装一个插件(ingest-attachment),但它只在容器初始化时安装。
对于其他类型的部署,我可以设置replica:0,然后将其设置回1,以模仿删除和重新启动,但对于kind:Elasticsearch,我不能将nodeSets计数设置为0,否则它会抛出错误,无法部署。
是否有任何可行的方法允许我在Elasticsearch容器上安装插件?
下面是Elasticsearch yaml文件:

apiVersion: elasticsearch.k8s.elastic.co/v1 
kind: Elasticsearch 
metadata: 
  name: elastic-test
spec: 
  version: 7.11.1
  auth:
    roles:
    - secretName: elastic-roles-secret
    fileRealm:
    - secretName: elastic-filerealm-secret
  nodeSets: 
  - name: default
    count: 1 
    config:
      node.store.allow_mmap: false 
    volumeClaimTemplates:
    - metadata:
        name: azure-pvc
      spec:
        storageClassName: ""
        accessModes:
        - ReadWriteMany
        resources:
          requests:
            storage: 25Gi
        volumeName: elasticsearch-azure-pv
    podTemplate:
      spec:
        initContainers:
        - name: install-plugins
          command:
          - sh
          - -c
          - |
            bin/elasticsearch-plugin install --batch ingest-attachment
6ljaweal

6ljaweal1#

在为您的问题寻找解决方案后,我很抱歉地通知您,现在没有您提到的方法重新启动群集似乎是不可能的。
this article中,你可以找到这些方法。
Here您可以找到Elasticsearch的自定义配置文件和插件。
参见:thisthis指南。

doinxwow

doinxwow2#

使用ECK作为操作符,您不需要使用rollout restart。应用更新的Elasticsearch规范,操作员将为您执行滚动更新。

owfi6suc

owfi6suc3#

如果您需要触发手动滚动重启,这不是基于YAML文件规范的更改,因为ECK Operator和ElasticSearch CRD会为每个节点集创建一个StatefulSet。您可以执行以下操作:

kubectl rollout restart statefulset/<name-of-statefulset>

要获取您的statefulsets:

kubectl get statefulset

相关问题