Docker 持久体积kube的弹性搜索
我试图Docker 持久体积kube的弹性搜索,docker,
elasticsearch,kubernetes,amazon-eks,Docker,
elasticsearch,Kubernetes,Amazon Eks,我试图elasticsearchKubernetes(EKS)集群上部署持久卷(EBS),参考 但是pod失败了 OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release. [2019-03-13T18:03:08,459][WARN ][o.e.b.ElasticsearchUnc
elasticsearch
Kubernetes(EKS)集群上部署持久卷(EBS),参考
但是pod失败了
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
[2019-03-13T18:03:08,459][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [unknown] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.IllegalStateException: Failed to create node environment
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~[elasticsearch-6.6.1.jar:6.6.1]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-6.6.1.jar:6.6.1]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.6.1.jar:6.6.1]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.6.1.jar:6.6.1]
at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.6.1.jar:6.6.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:116) ~[elasticsearch-6.6.1.jar:6.6.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.6.1.jar:6.6.1]
Caused by: java.lang.IllegalStateException: Failed to create node environment
at org.elasticsearch.node.Node.<init>(Node.java:298) ~[elasticsearch-6.6.1.jar:6.6.1]
at org.elasticsearch.node.Node.<init>(Node.java:265) ~[elasticsearch-6.6.1.jar:6.6.1]
at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:212) ~[elasticsearch-6.6.1.jar:6.6.1]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:212) ~[elasticsearch-6.6.1.jar:6.6.1]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) ~[elasticsearch-6.6.1.jar:6.6.1]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-6.6.1.jar:6.6.1]
... 6 more
Caused by: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:90) ~[?:?]
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) ~[?:?]
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116) ~[?:?]
at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:385) ~[?:?]
at java.nio.file.Files.createDirectory(Files.java:689) ~[?:?]
at java.nio.file.Files.createAndCheckIsDirectory(Files.java:796) ~[?:?]
at java.nio.file.Files.createDirectories(Files.java:782) ~[?:?]
at org.elasticsearch.env.NodeEnvironment.lambda$new$0(NodeEnvironment.java:270) ~[elasticsearch-6.6.1.jar:6.6.1]
at org.elasticsearch.env.NodeEnvironment$NodeLock.<init>(NodeEnvironment.java:203) ~[elasticsearch-6.6.1.jar:6.6.1]
at org.elasticsearch.env.NodeEnvironment.<init>(NodeEnvironment.java:267) ~[elasticsearch-6.6.1.jar:6.6.1]
at org.elasticsearch.node.Node.<init>(Node.java:295) ~[elasticsearch-6.6.1.jar:6.6.1]
at org.elasticsearch.node.Node.<init>(Node.java:265) ~[elasticsearch-6.6.1.jar:6.6.1]
at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:212) ~[elasticsearch-6.6.1.jar:6.6.1]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:212) ~[elasticsearch-6.6.1.jar:6.6.1]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) ~[elasticsearch-6.6.1.jar:6.6.1]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-6.6.1.jar:6.6.1]
... 6 more
解决此问题的正确方法是什么?您使用的解决方案是一种变通方法,但您可以稍微解决一下,kubernetes的方法如下所述: 因此,在您的情况下,应该是这样的:
....
spec:
...
securityContext:
fsGroup: 1000
我要对伊扎兹·艾哈迈德·汗的回答发表评论,因为它是正确的,但不清楚。然而,我还没有代表 设置Pod securtyContext是Kubernetes的方法,不用做一堆侧车/预运行的蠢事 为清楚起见,在部署的情况下:
apiVersion: apps/v1
kind: Deployment
# ...
spec: # Deployment
template:
spec: # Pod
securityContext:
fsGroup: 1000
docker映像dockerfile中似乎有一个bug,请查看卷指令和设置权限,以及这些指令的顺序。相关问题:在dockerfile中,它们似乎是该目录的用户和组设置,但当您运行并在该路径上装载卷时,这些设置将消失,然后您需要再次重置它们。验证“qa/elasticsearch.yaml”时出错:验证数据时出错:ValidationError(部署.spec.template.spec.containers[0].securityContext):未知字段“fsGroup”在io.k8s.api.core.v1.SecurityContext中;如果选择忽略这些错误,请使用--validate=false关闭验证,因为您将其放在了错误的位置,请查看在
副本之后尝试的语法:
&在模板之前:
。在io.k8s.api.extensions.v1beta1.DeploymentSpec
....
spec:
...
securityContext:
fsGroup: 1000
apiVersion: apps/v1
kind: Deployment
# ...
spec: # Deployment
template:
spec: # Pod
securityContext:
fsGroup: 1000