我想使用位于/ usr / share / elasticsearch / config中的elasticsearch.yml配置elasticsearch。我通过ConfigMap这样做,我将其安装到容器中。
这不起作用,因为k8s接管了这个目录的控制,并且该目录的其他文件不再存在(例如jvm.options)。
我认为这是一个常见问题 - 是否有最佳解决方法?我想到的第一个想法是使用initcontainer与/some/other/directory/elasticsearch.yml进行符号链接。这样做是明智的吗?
答案 0 :(得分:1)
因此找到了一个我希望与您分享的正确解决方案。魔法发生在volumeMount
中的subPathapiVersion: 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