Elasticsearch未知设置[xpack.license.self_genic.type]

时间:2018-07-03 23:04:34

标签: elasticsearch kubernetes google-kubernetes-engine

我正在将我在kubernetes集群上的elasticsearch从5.6.10升级到elasticsearch 6.1.4。但是,我什至无法启动es 6.1.4。

我一直收到错误unknown setting [xpack.license.self_generated.type]

Per the docs,我尝试将值设置为basic,xpack.license.self_generated.type=basic,并且我也一起省略了该值。

我已经看到其他一些人遇到了此错误,但是他们的修复都不对我有用。

非常感谢您的帮助!

我的状态集yaml

apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: elastic-data
  labels:
    app: elastic-data
    area: devs
    role: nosql
    version: "6.1.4"
    environment: elastic
spec:
  serviceName: elastic-data
  replicas: 1
  updateStrategy:
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: elastic-data
        area: devs
        role: nosql
        version: "6.1.4"
        environment: elastic
      annotations:
        pod.beta.kubernetes.io/init-containers: '[
          {
          "name": "sysctl",
            "image": "busybox",
            "imagePullPolicy": "IfNotPresent",
            "command": ["sysctl", "-w", "vm.max_map_count=262144"],
            "securityContext": {
              "privileged": true
            }
          }
        ]'
    spec:
      terminationGracePeriodSeconds: 10
      securityContext:
        runAsUser: 1000
        fsGroup: 1000
      containers:
      - name: elastic-data
        image: docker.elastic.co/elasticsearch/elasticsearch:6.1.4
        resources:
          requests:
            memory: "512Mi"
          limits:
            memory: "1024Mi"
        env:
        - name: ES_JAVA_OPTS
          value: -Xms512m -Xmx512m
        command: ["/bin/bash", "-c", "~/bin/elasticsearch-plugin remove x-pack; elasticsearch"]
        args:
        - -Ecluster.name=elastic-devs
        - -Enode.name=${HOSTNAME}
        - -Ediscovery.zen.ping.unicast.hosts=elastic-master.default.svc.cluster.local
        - -Enode.master=false
        - -Enode.data=true
        - -Enode.ingest=false
        - -Enetwork.host=0.0.0.0
        - -Expack.license.self_generated.type=basic    
        ports:
        - containerPort: 9300
          name: transport
        - containerPort: 9200
          name: http
        volumeMounts:
        - name: data-volume
          mountPath: /usr/share/elasticsearch/data
        readinessProbe:
          tcpSocket:
            port: 9300
          initialDelaySeconds: 30
          periodSeconds: 30
          timeoutSeconds: 3
        livenessProbe:
          tcpSocket:
            port: 9300
          initialDelaySeconds: 30
          periodSeconds: 30
          timeoutSeconds: 3
  volumeClaimTemplates:
  - metadata:
      name: data-volume
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 2Gi

1 个答案:

答案 0 :(得分:1)

在他们尝试进行通信时,您忘记了从config/elasticsearch.yml中删除配置属性。因此,完整修订后的command:将是

~/bin/elasticsearch-plugin remove x-pack
sed -i.bak -e /xpack.license.self_generated.type/d config/elasticsearch.yml
elasticsearch

不要误会我的意思,他们中的很愚蠢炸毁config属性以查找不存在的东西,但这显然是这样。


p.s。您可能更喜欢--purge选项,因为当我在本地尝试该命令时,elasticsearch-plugin建议:

  

->在升级的情况下保留插件配置文件[/ usr / share / elasticsearch / config / x-pack];如果不需要,请使用--purge

因此:./bin/elasticsearch-plugin remove x-pack --purge