#elasticsearch #kubernetes #kibana #elasticsearch-7
#elasticsearch #kubernetes #kibana #elasticsearch-7
Вопрос:
У меня есть 2 кластера эластичных кластеров на 2 разных виртуальных машинах kubernetes, которые я пытался подключить к перекрестному кластеру. но это не работает, я добавляю подробности ниже, может кто-нибудь помочь и сказать мне, что я сделал не так или пропустил? Я попытался соединить одну резинку с другой, как показано ниже:
ПОЛУЧИТЬ _cluster/настройки
{
"persistent" : {
"cluster" : {
"remote" : {
"cluster_three" : {
"mode" : "proxy",
"proxy_address" : "122.22.111.222:30005"
},
"cluster_two" : {
"mode" : "sniff",
"skip_unavailable" : "false",
"transport" : {
"compress" : "true"
},
"seeds" : [
"122.22.222.182:30005"
]
},
"cluster_one" : {
"seeds" : [
"127.0.0.1:9200"
],
"transport" : {
"ping_schedule" : "30s"
}
}
}
}
},
"transient" : { }
}
}
Я попытался выполнить поиск во втором кластере и получил следующую ошибку:
{"statusCode":502,"error":"Bad Gateway","message":"Client request timeout"}
но когда я делаю curl на эластичном для cluste_two, я получаю это :
curl 122.22.222.182:30005
{
"name" : "elasticsearch-client-7dcc49ddsdsd4-ljwasdpl",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "bOkaIrcFTgetsadaaY114N4a1EQ",
"version" : {
"number" : "7.10.2",
"build_flavor" : "oss",
"build_type" : "docker",
"build_hash" : "747e1cc71def077253878a59143c1f785asdasafa92b9",
"build_date" : "2021-01-13T00:42:12.435326Z",
"build_snapshot" : false,
"lucene_version" : "8.7.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
это мой svc, настроенный в kubernetes для cluste_two:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
elasticsearch-client NodePort 10.111.11.28 <none> 9200:30005/TCP 27m
elasticsearch-discovery ClusterIP 10.111.11.11 <none> 9300/TCP 27m
Ответ №1:
Обнаружение Elasticsearch работает на порту 9300 вместо 9200, пока вы запускаете curl, он передается как запрос клиента через порт 30005.
Пожалуйста, проверьте, что 9300 открыт для подключения кросс-кластера. поскольку ваша служба elasticsearch-discovery работает как ClusterIP, вам, возможно, придется изменить ее тип, чтобы выставить ее из K8s, используя NodePort LoadBalancer в соответствии с требованиями.
например
# From cluster 1, we’ll define how the cluster-2 can be accessed
PUT /_cluster/settings
{
"persistent" : {
"cluster" : {
"remote" : {
"us-cluster" : {
"seeds" : [
"127.0.0.1:9300"
]
}
}
}
}
}
вы также можете посмотреть: https://www.elastic.co/blog/cross-datacenter-replication-with-elasticsearch-cross-cluster-replication
Комментарии:
1. может ли это работать также с конечными точками, такими как: XX.XX.XX.XX / elastic?
2. с портом 9200 или 9300?