Как передать текущие журналы из одного кластера K8s в ElasticSearch в другом кластере K8s?
У меня есть сценарий, в котором у нас есть беглые демоны, работающие на нескольких кластерах K8s (C-1, C-2, C-3) и у нас работает ElasticSearch на другом кластере K8s (C-4).Мы хотели подтолкнуть все текущие журналы от C-1, C-2 и C-3 к упругому поиску на C-4.
Вот что я сделал:
Создана запись входного хоста со службой ES в кластере C-4, которая выглядит как
es-entrypoint.logging.svc.cluster.local
Вышеуказанный входной хост может быть доступен из любого кластераиспользуя главный IP-адрес кластера C4.
$curl -H "Host: es-entrypoint.logging.svc.cluster.local" http://10.11.1.44
{
"name" : "elasticsearch-logging-p57wl",
"cluster_name" : "kubernetes-logging",
"cluster_uuid" : "ox8jE56mTg630zdKtThPHQ",
"version" : {
"number" : "6.3.2",
"build_flavor" : "oss",
"build_type" : "tar",
"build_hash" : "053779d",
"build_date" : "2018-07-20T05:20:23.451332Z",
"build_snapshot" : false,
"lucene_version" : "7.3.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
Затем я создал службу без селектора в кластерах C-1, C-2 и C-3.
---
apiVersion: v1
kind: Endpoints
metadata:
name: es-entrypoint
namespace: logging
subsets:
- addresses:
- ip: 10.11.1.44
ports:
- name: es-http
port: 80
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: es-entrypoint
namespace: logging
spec:
ports:
- name: es-http
port: 80
protocol: TCP
targetPort: 80
sessionAffinity: None
type: ClusterIP
Теперь я могу получить доступ к URI входящего хоста из модуля в C-1, C-2 и C-3 кластеров с использованием curl http://es-entrypoint.logging.svc.cluster.local:80
.Это хорошо работает с кибаной и всеми модулями, кроме flunetD.
Ошибка
2019-06-13 06:06:57 +0000 [warn]: [asticsearch] не удалосьочистить буфер.retry_time = 10 next_retry_seconds = 2019-06-13 06:07:31 +0000 chunk = "58b2ddd4f511bc47e5bf7705f177cb2b" error_class = Fluent :: Plugin :: ElasticsearchOutput :: ConnectionFailure error = "Не удается связаться с кластером Elasticsearch \ {{host>es-entrypoint.logging.svc.cluster.local \ ",: port => 80,: схема => \" http \ "})!"
Пожалуйста, найдите свободный yml:
https://raw.githubusercontent.com/kubernetes/kubernetes/v1.10.2/cluster/addons/fluentd-elasticsearch/fluentd-es-ds.yaml
Любая идея ??