1
我已经成功地在IP(硬编码地址:端口)上指定我的elasticsearch.yaml文件中的主机,但我被告知这是不好的做法。我正在尝试切换到仅使用ES群集的pod名称,现在没有发现/使用pod作为主群集。我对所有3个吊舱,我安装具有以下规格一elasticsearch.yml configMap:可以使用IP连接到elasticsearch窗格但不使用窗口名称
cluster.name: elasticsearch-logs
node.name: ${HOSTNAME}
node.master: true
node.data: true
network.host: _local_
transport.tcp.port: 9300
http.port: 9200
bootstrap.memory_lock: false
xpack.security.enabled: false
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping.unicast.hosts: ["es-0:9300", "es-1:9300", "es-2:9300"]
随着这个我有2个服务。一个是无头服务,另一个是ClusterIP。
apiVersion: v1
kind: Service
metadata:
name: elasticsearch-svc
labels:
component: elasticsearch
role: master
spec:
selector:
component: elasticsearch
role: master
ports:
- name: transport
port: 9300
targetPort: 9300
clusterIP: None
apiVersion: v1
kind: Service
metadata:
name: elasticsearch-discovery
labels:
component: elasticsearch
role: master
spec:
selector:
component: elasticsearch
role: master
ports:
- name: transport
port: 9300
protocol: TCP
而且在创建该ES荚我有口规格主要StatefulSet文件:
ports:
- containerPort: 9200
name: db
protocol: TCP
- containerPort: 9300
name: transport
protocol: TCP
我试图让所有3个荚作为主(和数据/客户端)。当我看着吊舱日志之一(这里ES-0)创建我的服务/ statefulsets我看到下面的重复错误后:
[2017-10-16T15:31:29,078][WARN ][o.e.d.z.UnicastZenPing ] [es-0] timed out after [5s] resolving host [es-1:9300]
[2017-10-16T15:31:29,079][WARN ][o.e.d.z.UnicastZenPing ] [es-0] timed out after [5s] resolving host [es-2:9300]
[2017-10-16T15:31:32,080][WARN ][o.e.d.z.ZenDiscovery ] [es-0] not enough master nodes discovered during pinging (found [[Candidate{node={es-0}{TUE-h8SNR6q7WbWUl2Pm-A}{XrTrBg3ATqSvlB3hTlezpg}{172.17.0.3}{172.17.0.3:9300}{ml.max_open_jobs=10, ml.enabled=true}, clusterStateVersion=-1}]], but needed [2]), pinging again
[2017-10-16T15:31:36,111][WARN ][o.e.d.z.UnicastZenPing ] [es-0] failed to resolve host [es-1:9300]
java.net.UnknownHostException: es-1
at java.net.InetAddress.getAllByName0(InetAddress.java:1280) ~[?:1.8.0_141]
at java.net.InetAddress.getAllByName(InetAddress.java:1192) ~[?:1.8.0_141]
at java.net.InetAddress.getAllByName(InetAddress.java:1126) ~[?:1.8.0_141]
at org.elasticsearch.transport.TcpTransport.parse(TcpTransport.java:908) ~[elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.transport.TcpTransport.addressesFromString(TcpTransport.java:863) ~[elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.transport.TransportService.addressesFromString(TransportService.java:691) ~[elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.discovery.zen.UnicastZenPing.lambda$null$0(UnicastZenPing.java:212) ~[elasticsearch-5.6.3.jar:5.6.3]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_141]
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:569) [elasticsearch-5.6.3.jar:5.6.3]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_141]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_141]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_141]
[2017-10-16T15:31:36,116][WARN ][o.e.d.z.UnicastZenPing ] [es-0] failed to resolve host [es-2:9300]
java.net.UnknownHostException: es-2
at java.net.InetAddress.getAllByName0(InetAddress.java:1280) ~[?:1.8.0_141]
at java.net.InetAddress.getAllByName(InetAddress.java:1192) ~[?:1.8.0_141]
at java.net.InetAddress.getAllByName(InetAddress.java:1126) ~[?:1.8.0_141]
at org.elasticsearch.transport.TcpTransport.parse(TcpTransport.java:908) ~[elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.transport.TcpTransport.addressesFromString(TcpTransport.java:863) ~[elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.transport.TransportService.addressesFromString(TransportService.java:691) ~[elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.discovery.zen.UnicastZenPing.lambda$null$0(UnicastZenPing.java:212) ~[elasticsearch-5.6.3.jar:5.6.3]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_141]
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:569) [elasticsearch-5.6.3.jar:5.6.3]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_141]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_141]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_141]
[2017-10-16T15:31:39,120][WARN ][o.e.d.z.ZenDiscovery ] [es-0] not enough master nodes discovered during pinging (found [[Candidate{node={es-0}{TUE-h8SNR6q7WbWUl2Pm-A}{XrTrBg3ATqSvlB3hTlezpg}{172.17.0.3}{172.17.0.3:9300}{ml.max_open_jobs=10, ml.enabled=true}, clusterStateVersion=-1}]], but needed [2]), pinging again
我仍然能够在node-ip:node-port
达到通过浏览器elasticsearch但我得到503错误一旦我尝试做/_cluster/state
我相信我有一个端口的“网络”端的错误,但我不确定在哪里。我应该看什么?谢谢!
StatefulSet
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: es
labels:
component: elasticsearch
role: master
spec:
serviceName: elasticsearch
replicas: 3
template:
metadata:
labels:
component: elasticsearch
role: master
annotations:
pod.alpha.kubernetes.io/init-containers: '[
{
"name": "init-sysctl",
"image": "alpine:3.4",
"imagePullPolicy": "IfNotPresent",
"command": ["sysctl", "-w", "vm.max_map_count=262144"],
"securityContext": {
"privileged": true
}
}
]'
spec:
subdomain: elasticsearch-svc
containers:
- name: es-master
securityContext:
privileged: true
capabilities:
add:
- IPC_LOCK
image: docker.elastic.co/elasticsearch/elasticsearch:5.6.3
imagePullPolicy: Always
env:
- name: "ES_JAVA_OPTS"
value: "-Xms512m -Xmx512m"
ports:
- containerPort: 9200
name: http
protocol: TCP
- containerPort: 9300
name: transport
protocol: TCP
volumeMounts:
- name: storage
mountPath: /data
- name: config-volume
mountPath: /usr/share/elasticsearch/config/elasticsearch.yml
subPath: elasticsearch.yml
volumes:
- name: config-volume
configMap:
name: elasticsearch-config
volumeClaimTemplates:
- metadata:
name: storage
annotations:
volume.beta.kubernetes.io/storage-class: standard
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 12Gi
我试过了,它也没有工作:(会在群集中是一个minikube集群已任。影响,因为这意味着它是一个节点集群的主节点? – appdap1
您是否在statefulset对象上设置了“serviceName”和标签? – vascop
是的,我有'serviceName:elasticsearch'和组件/角色标签。将规范添加到我的文章) – appdap1