у меня есть 3 узла в кластере kubernetes - один из них является главным. Я установил эластичный поиск с помощью установки шлема с пользовательскими значениями
---
# Permit co-located instances for solitary minikube virtual machines.
antiAffinity: "soft"
# Shrink default JVM heap.
esJavaOpts: "-Xmx128m -Xms128m"
# Allocate smaller chunks of memory per pod.
resources:
requests:
cpu: "100m"
memory: "512M"
limits:
cpu: "1000m"
memory: "512M"
# Request smaller persistent volumes.
volumeClaimTemplate:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 100M
. это kubectl get all
NAME READY STATUS RESTARTS AGE
pod/elasticsearch-master-0 0/1 Running 0 24m
pod/elasticsearch-master-1 0/1 Running 0 24m
pod/elasticsearch-master-2 0/1 Running 0 24m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/elasticsearch-master ClusterIP 10.110.224.134 <none> 9200/TCP,9300/TCP 24m
service/elasticsearch-master-headless ClusterIP None <none> 9200/TCP,9300/TCP 24m
service/glusterfs-dynamic-3b22309e-ecb2-4874-9186-1d0d8e16e364 ClusterIP 10.99.52.135 <none> 1/TCP 24m
service/glusterfs-dynamic-5c51d80c-8a33-4240-bc1d-2a578aca6ff9 ClusterIP 10.100.75.99 <none> 1/TCP 24m
service/glusterfs-dynamic-75293711-ee36-4f98-b645-9162e362c4a9 ClusterIP 10.98.220.143 <none> 1/TCP 24m
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 27h
NAME READY AGE
statefulset.apps/elasticsearch-master 0/3 24m
результат describe
одного из модулей, остальные были похожи
Warning FailedScheduling 25m (x3 over 25m) default-scheduler error while running "VolumeBinding" filter plugin for pod "elasticsearch-master-1": pod has unbound immediate PersistentVolumeClaims
Normal Scheduled 25m default-scheduler Successfully assigned default/elasticsearch-master-1 to kube.node1
Normal Pulling 25m kubelet, kube.node1 Pulling image "docker.elastic.co/elasticsearch/elasticsearch:7.6.0"
Normal Pulled 20m kubelet, kube.node1 Successfully pulled image "docker.elastic.co/elasticsearch/elasticsearch:7.6.0"
Normal Created 20m kubelet, kube.node1 Created container configure-sysctl
Normal Started 20m kubelet, kube.node1 Started container configure-sysctl
Normal Pulled 20m kubelet, kube.node1 Container image "docker.elastic.co/elasticsearch/elasticsearch:7.6.0" already present on machine
Normal Created 20m kubelet, kube.node1 Created container elasticsearch
Normal Started 20m kubelet, kube.node1 Started container elasticsearch
Warning Unhealthy 10s (x124 over 20m) kubelet, kube.node1 Readiness probe failed: Waiting for elasticsearch cluster to become ready (request params: "wait_for_status=green&timeout=1s" )
Cluster is not yet ready (request params: "wait_for_status=green&timeout=1s" )
журналы модулей дают эту ошибку каждые несколько секунд kubectl logs pod/xxxxxxx
{"type": "server", "timestamp": "2020-02-13T17:49:28,299Z", "level": "WARN", "component": "o.e.d.SeedHostsResolver", "cluster.name": "elasticsearch", "node.name": "elasticsearch-master-2", "message": "failed to resolve host [elasticsearch-master-headless]",
"stacktrace": ["java.net.UnknownHostException: elasticsearch-master-headless",
"at java.net.InetAddress$CachedAddresses.get(InetAddress.java:798) ~[?:?]",
"at java.net.InetAddress.getAllByName0(InetAddress.java:1489) ~[?:?]",
"at java.net.InetAddress.getAllByName(InetAddress.java:1348) ~[?:?]",
"at java.net.InetAddress.getAllByName(InetAddress.java:1282) ~[?:?]",
"at org.elasticsearch.transport.TcpTransport.parse(TcpTransport.java:528) ~[elasticsearch-7.6.0.jar:7.6.0]",
"at org.elasticsearch.transport.TcpTransport.addressesFromString(TcpTransport.java:470) ~[elasticsearch-7.6.0.jar:7.6.0]",
"at org.elasticsearch.transport.TransportService.addressesFromString(TransportService.java:801) ~[elasticsearch-7.6.0.jar:7.6.0]",
"at org.elasticsearch.discovery.SeedHostsResolver.lambda$resolveHostsLists$0(SeedHostsResolver.java:144) ~[elasticsearch-7.6.0.jar:7.6.0]",
"at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]",
"at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:633) ~[elasticsearch-7.6.0.jar:7.6.0]",
"at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]",
"at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]",
"at java.lang.Thread.run(Thread.java:830) [?:?]"] }
Я попытался изменить реплики на 1 - модуль был запущен с готовностью 1/1, но проблема с разрешением хоста на безголовый тоже была. Любой может помочь
Среда: 3 хоста с centos8, Kubernetes v1.17.3, storageClass: gluster-provisioner (по умолчанию) kubernetes.io/glusterfs с heketi api.