Elasticsearch helm 图表给出 AccessDenied 异常

bea*_*ice 5 elasticsearch kubernetes kubernetes-helm

这是一个似乎仍未解决的常见问题:

ElasticsearchException[failed to bind service]; nested: AccessDeniedException[/usr/share/elasticsearch/data/nodes];
Likely root cause: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes
Run Code Online (Sandbox Code Playgroud)

我正在尝试在 RKE 设置的集群上运行它。我开始以开箱即用的方式使用它,意味着仅将它用作依赖项:

dependencies:
  - name: elasticsearch
    version: 7.6.2
    repository: https://helm.elastic.co
Run Code Online (Sandbox Code Playgroud)

它马上就失败了。

我知道并关注了相应的 github 问题,例如:
https://github.com/elastic/helm-charts/issues/429
https://github.com/elastic/helm-charts/issues/137
https:// github.com/elastic/helm-charts/issues/388
https://github.com/elastic/helm-charts/issues/258

我还尝试在 'initresources' 中手动对其进行 cmod-ing,我玩过 fsgroup,并且我还尝试使用 Rancher Local Path Provisioner(在问题 429 中提到)。
根本没有成功,每次都会出现同样的异常。

任何想法?

Car*_*llo 4

在这里粘贴我在https://github.com/elastic/helm-charts/issues/258给出的答案

基本上,我通过从 helm 图表中获取 value.yaml 并添加 securityContext 解决了这个问题。图表本身附带的 configure-sysctl initContainer 执行此操作(特权 + runAsUser):

extraInitContainers:
   - name: file-permissions
     image: busybox
     command: ['chown', '-R', '1000:1000', '/usr/share/elasticsearch/']
     volumeMounts:
     - mountPath: /usr/share/elasticsearch/data
       name: elasticsearch-master
     securityContext:
       privileged: true
       runAsUser: 0
Run Code Online (Sandbox Code Playgroud)