elasticsearch 如何编辑Kubernetes上elasticsearch的path.data和path.log?,elasticsearch,kubernetes,elasticsearch,Kubernetes" /> elasticsearch 如何编辑Kubernetes上elasticsearch的path.data和path.log?,elasticsearch,kubernetes,elasticsearch,Kubernetes" />

elasticsearch 如何编辑Kubernetes上elasticsearch的path.data和path.log?

elasticsearch 如何编辑Kubernetes上elasticsearch的path.data和path.log?,elasticsearch,kubernetes,elasticsearch,Kubernetes,我创建了一个es deploy.yml文件,然后键入path.log和path.data值 创建pod后,我检查了该目录,然后什么都没有 设置不起作用 如何编辑Kubernetes上elasticsearch的path.data和path.log 我还尝试使用PATH_数据 那些值path.data和path.log不是环境变量。是的 基于默认值ES_HOME=/usr/share/elasticsearch/的官方elasticsearch图像的默认path.data是/usr/share/

我创建了一个
es deploy.yml
文件,然后键入
path.log
path.data

创建pod后,我检查了该目录,然后什么都没有

设置不起作用

如何编辑Kubernetes上elasticsearch的
path.data
path.log

我还尝试使用PATH_数据



那些值
path.data
path.log
不是环境变量。是的

基于默认值
ES_HOME=/usr/share/elasticsearch/
的官方elasticsearch图像的默认
path.data
/usr/share/elasticsearch/data
,如果您不想使用该路径,则必须在
elasticsearch.yaml
配置中覆盖它

您必须创建一个包含
elasticsearch.yaml的

apiVersion: v1
kind: ConfigMap
metadata:
  name: elasticsearch-config
  namespace: es
data:
  elasticsearch.yml: |
    cluster:
      name: ${CLUSTER_NAME:elasticsearch-default}

    node:
      master: ${NODE_MASTER:true}
      data: ${NODE_DATA:true}
      name: ${NODE_NAME}
      ingest: ${NODE_INGEST:true}
      max_local_storage_nodes: ${MAX_LOCAL_STORAGE_NODES:1}

    processors: ${PROCESSORS:1}

    network.host: ${NETWORK_HOST:_site_}

    path:
      data: ${DATA_PATH:"/data/elk"}
      repo: ${REPO_LOCATIONS:[]}

    bootstrap:
      memory_lock: ${MEMORY_LOCK:false}

    http:
      enabled: ${HTTP_ENABLE:true}
      compression: true
      cors:
        enabled: true
        allow-origin: "*"

    discovery:
      zen:
        ping.unicast.hosts: ${DISCOVERY_SERVICE:elasticsearch-discovery}
        minimum_master_nodes: ${NUMBER_OF_MASTERS:1}

    xpack:
      license.self_generated.type: basic
    volumeMounts:
        - name: storage
          mountPath: /data/elk
        - name: config-volume
          mountPath: /usr/share/elasticsearch/config/elasticsearch.yml
          subPath: elasticsearch.yml

  volumes:
  - name: config-volume
    configMap:
      name: elasticsearch-config
  - name: storage
    <add-whatever-volume-you-are-using-for-data>
(请注意,上面的ConfigMap还允许您使用
数据路径
环境变量)

然后使用如下方式将卷装载到Pod中:

apiVersion: v1
kind: ConfigMap
metadata:
  name: elasticsearch-config
  namespace: es
data:
  elasticsearch.yml: |
    cluster:
      name: ${CLUSTER_NAME:elasticsearch-default}

    node:
      master: ${NODE_MASTER:true}
      data: ${NODE_DATA:true}
      name: ${NODE_NAME}
      ingest: ${NODE_INGEST:true}
      max_local_storage_nodes: ${MAX_LOCAL_STORAGE_NODES:1}

    processors: ${PROCESSORS:1}

    network.host: ${NETWORK_HOST:_site_}

    path:
      data: ${DATA_PATH:"/data/elk"}
      repo: ${REPO_LOCATIONS:[]}

    bootstrap:
      memory_lock: ${MEMORY_LOCK:false}

    http:
      enabled: ${HTTP_ENABLE:true}
      compression: true
      cors:
        enabled: true
        allow-origin: "*"

    discovery:
      zen:
        ping.unicast.hosts: ${DISCOVERY_SERVICE:elasticsearch-discovery}
        minimum_master_nodes: ${NUMBER_OF_MASTERS:1}

    xpack:
      license.self_generated.type: basic
    volumeMounts:
        - name: storage
          mountPath: /data/elk
        - name: config-volume
          mountPath: /usr/share/elasticsearch/config/elasticsearch.yml
          subPath: elasticsearch.yml

  volumes:
  - name: config-volume
    configMap:
      name: elasticsearch-config
  - name: storage
    <add-whatever-volume-you-are-using-for-data>
volumeMounts:
-名称:仓库
挂载路径:/data/elk
-名称:配置卷
挂载路径:/usr/share/elasticsearch/config/elasticsearch.yml
子路径:elasticsearch.yml
卷数:
-名称:配置卷
配置映射:
名称:elasticsearch配置
-名称:仓库

是否真的将/data/elk装入了容器?b塞达尔沃特“真的装入”的意思是?我想您已经得到了问题的答案,但我想问的是,如果/data/elk目录确实存在于容器中,并且它指向您希望它指向的位置。验证“es deploy.yml”时出错:验证数据时出错:ValidationError(Deployment.spec.template.spec.containers[0]):io.k8s.api.core.v1.Container中的未知字段“volumes”;如果选择忽略这些错误,请使用--validate=false关闭验证。卷不在容器定义中,它在pod定义中。检查缩进。