elasticsearch 无法在AWS kubernetes群集上启动Elasticsearch
我在运行kubernetes 1.10的AWS EKS上运行kubernetes群集。 我遵循本指南在集群中部署elasticsearch 我第一次部署它时,一切正常。现在,当我重新部署时,它给出了以下错误elasticsearch 无法在AWS kubernetes群集上启动Elasticsearch,elasticsearch,kubernetes,amazon-eks,elasticsearch,Kubernetes,Amazon Eks,我在运行kubernetes 1.10的AWS EKS上运行kubernetes群集。 我遵循本指南在集群中部署elasticsearch 我第一次部署它时,一切正常。现在,当我重新部署时,它给出了以下错误 ERROR: [2] bootstrap checks failed [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] [2018-08-2
ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2018-08-24T18:07:28,448][INFO ][o.e.n.Node ] [es-master-6987757898-5pzz9] stopping ...
[2018-08-24T18:07:28,534][INFO ][o.e.n.Node ] [es-master-6987757898-5pzz9] stopped
[2018-08-24T18:07:28,534][INFO ][o.e.n.Node ] [es-master-6987757898-5pzz9] closing ...
[2018-08-24T18:07:28,555][INFO ][o.e.n.Node ] [es-master-6987757898-5pzz9] closed
这是我的部署文件
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: es-master
labels:
component: elasticsearch
role: master
spec:
replicas: 3
template:
metadata:
labels:
component: elasticsearch
role: master
spec:
initContainers:
- name: init-sysctl
image: busybox:1.27.2
command:
- sysctl
- -w
- vm.max_map_count=262144
securityContext:
privileged: true
containers:
- name: es-master
image: quay.io/pires/docker-elasticsearch-kubernetes:6.3.2
env:
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: CLUSTER_NAME
value: myesdb
- name: NUMBER_OF_MASTERS
value: "2"
- name: NODE_MASTER
value: "true"
- name: NODE_INGEST
value: "false"
- name: NODE_DATA
value: "false"
- name: HTTP_ENABLE
value: "false"
- name: ES_JAVA_OPTS
value: -Xms512m -Xmx512m
- name: NETWORK_HOST
value: "0.0.0.0"
- name: PROCESSORS
valueFrom:
resourceFieldRef:
resource: limits.cpu
resources:
requests:
cpu: 0.25
limits:
cpu: 1
ports:
- containerPort: 9300
name: transport
livenessProbe:
tcpSocket:
port: transport
initialDelaySeconds: 20
periodSeconds: 10
volumeMounts:
- name: storage
mountPath: /data
volumes:
- emptyDir:
medium: ""
name: "storage"
我看到很多帖子都在谈论增加价值,但我不知道怎么做。任何帮助都将不胜感激 更新文件'/etc/docker/daemon.json'中的默认ulimit参数
"default-ulimits": {
"nofile": {
"Name": "nofile",
"Soft": 65536,
"Hard": 65536
}
}
并重新启动docker守护进程。更新文件'/etc/docker/daemon.json'中的默认ulimit参数
"default-ulimits": {
"nofile": {
"Name": "nofile",
"Soft": 65536,
"Hard": 65536
}
}
然后重新启动docker守护进程。只想附加到:
如果您在之前创建EKS群集,则可以将以下内容附加到节点组创建yaml:
preBootstrapCommand:
- "sed -i -e 's/1024:4096/65536:65536/g' /etc/sysconfig/docker"
- "systemctl restart docker"
这将通过修复docker守护程序配置来解决新创建集群的问题。只想附加到:
如果您在之前创建EKS群集,则可以将以下内容附加到节点组创建yaml:
preBootstrapCommand:
- "sed -i -e 's/1024:4096/65536:65536/g' /etc/sysconfig/docker"
- "systemctl restart docker"
这将通过修复docker守护程序配置来解决新创建的集群的问题。这是我使用EKS设置EFK堆栈唯一有效的方法。将其添加到
节点组:
下的节点组创建YAML文件中。然后创建节点组并在其上应用ES吊舱
preBootstrapCommands:
- "sysctl -w vm.max_map_count=262144"
- "systemctl restart docker"
这是我使用EKS设置EFK堆栈唯一有效的方法。将其添加到
节点组:
下的节点组创建YAML文件中。然后创建节点组并在其上应用ES吊舱
preBootstrapCommands:
- "sysctl -w vm.max_map_count=262144"
- "systemctl restart docker"
/etc/security/limits.conf
中的值是什么?根据docker,守护进程继承守护进程启动时定义的任何限制,因此如果该文件设置得太低,简单的答案可能是编辑limits.conf
并重新启动docker
我想我必须在运行时这样做,因为我在kubernetes集群中运行它,POD不是持久的。如何编辑上面的部署.yaml,以便在部署期间增加最大文件描述符?我想你忽略了我的问题问题:节点上的limits.conf
中的值是什么(不是在容器中,而是在节点上)?该节点是docker守护程序所在的位置,因此它是由limits控制的节点。confIt是创建EKS工作节点的AWS AMI的一个问题。我必须在每个节点上执行sed-I-e's/1024:4096/65536:65536/g'/etc/sysconfig/docker,然后重新启动它以使其工作。/etc/security/limits.conf
中的值是什么?根据docker,守护进程继承守护进程启动时定义的任何限制,因此如果该文件设置得太低,简单的答案可能是编辑limits.conf
并重新启动docker
我想我必须在运行时这样做,因为我在kubernetes集群中运行它,POD不是持久的。如何编辑上面的部署.yaml,以便在部署期间增加最大文件描述符?我想你忽略了我的问题问题:节点上的limits.conf
中的值是什么(不是在容器中,而是在节点上)?该节点是docker守护程序所在的位置,因此它是由limits控制的节点。confIt是创建EKS工作节点的AWS AMI的一个问题。我必须在每个节点上执行sed-I-e's/1024:4096/65536:65536/g'/etc/sysconfig/docker,然后重新启动它以使其工作。