Kubernetes ConfigMap目录权限

时间:2017-12-19 08:02:04

标签: elasticsearch kubernetes

我想使用位于/ usr / share / elasticsearch / config中的elasticsearch.yml配置elasticsearch。我通过ConfigMap这样做,我将其安装到容器中。

这不起作用,因为k8s接管了这个目录的控制,并且该目录的其他文件不再存在(例如jvm.options)。

我认为这是一个常见问题 - 是否有最佳解决方法?我想到的第一个想法是使用initcontainer与/some/other/directory/elasticsearch.yml进行符号链接。这样做是明智的吗?

1 个答案:

答案 0 :(得分:1)

因此找到了一个我希望与您分享的正确解决方案。魔法发生在volumeMount

中的subPath
apiVersion: v1
kind: ConfigMap
...
data:
  elasticsearch.yml: |
    xpack.license.self_generated.type: basic
---
apiVersion: extensions/v1beta1
kind: Deployment
...
spec:
  ...
  template:
    containers:
      ...
    volumeMounts:
      - name: config
        mountPath: /usr/share/elasticsearch/config/elasticsearch.yml
        subPath: elasticsearch.yml
  volumes:
    - name: config
      configMap:
        name: elasticsearch-logging