Соединение Jaeger с бэкэнд-хранилищем эластичного поиска на кластере Kubernetes - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть кластер kubernetes на облачной платформе Google, и на нем у меня есть развертывание jaeger с настройкой разработки шаблонов jaeger-kubernetes , потому что моя цель - настроить elasticsearch как внутреннее хранилище, потому чтопосле этого я следую документации по jaeger-kubernetes github со следующими действиями

Вотнастроил URL для доступа к elasticsearch серверу, а также к имени пользователя, паролю и портам

kubectl create -f https://raw.githubusercontent.com/jaegertracing/jaeger-kubernetes/master/production-elasticsearch/configmap.yml

А здесь настроены загрузка образов докеров сервисаasticsearch и их объемные монтирования.

kubectl create -f https://raw.githubusercontent.com/jaegertracing/jaeger-kubernetes/master/production-elasticsearch/elasticsearch.yml

И затем, в этот момент у нас есть служба эластичного поиска, работающая через порты 9200 и 9300

 kubectl get service elasticsearch                                                                                                                                [a89fbe2]
NAME            TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)             AGE
elasticsearch   ClusterIP   None         <none>        9200/TCP,9300/TCP   1h

λ bgarcial [~] → kubectl create -f https://raw.githubusercontent.com/jaegertracing/jaeger-kubernetes/master/jaeger-production-template.yml        
deployment.extensions/jaeger-collector created
service/jaeger-collector created
service/zipkin created
deployment.extensions/jaeger-query created
service/jaeger-query created
daemonset.extensions/jaeger-agent created

λ bgarcial [~/workspace/jaeger-elastic] at  master ?

В соответствии с архитектурой Jaeger , jaeger-collector и jaeger-queryсервисы требуют доступа к внутреннему хранилищу.

Итак, вот мои службы, работающие на моем кластере kubernetes:

λ bgarcial [~/workspace/jaeger-elastic] at  master ?
→ kubectl get services                                                                                  [baefdf9]
NAME               TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)                        AGE
elasticsearch      ClusterIP      None            <none>           9200/TCP,9300/TCP              3h
jaeger-collector   ClusterIP      10.55.253.240   <none>           14267/TCP,14268/TCP,9411/TCP   3h
jaeger-query       LoadBalancer   10.55.248.243   35.228.179.167   80:30398/TCP                   3h
kubernetes         ClusterIP      10.55.240.1     <none>           443/TCP                        3h
zipkin             ClusterIP      10.55.240.60    <none>           9411/TCP                       3h

λ bgarcial [~/workspace/jaeger-elastic] at  master ?
  • Я собираюсь configmap.yml команду поиска файла kubectl edit configmap jaeger-configuration, чтобы попытаться редактироватьэто по отношению к конечным точкам URL-адресов эластичного поиска (может быть? ... В данный момент я полагаю, что это следующий шаг ...)

Я выполняю это:

λ bgarcial [~] → kubectl edit configmap jaeger-configuration 

И я получаю следующую запись редактирования:

 apiVersion: v1
data:
  agent: |
    collector:
      host-port: "jaeger-collector:14267"
  collector: |
    es:
      server-urls: http://elasticsearch:9200
      username: elastic
      password: changeme
    collector:
      zipkin:
        http-port: 9411
  query: |
    es:
      server-urls: http://elasticsearch:9200
      username: elastic
      password: changeme
  span-storage-type: elasticsearch
kind: ConfigMap
metadata:
  creationTimestamp: "2018-12-27T13:24:11Z"
  labels:
    app: jaeger
    jaeger-infra: configuration
  name: jaeger-configuration
  namespace: default
  resourceVersion: "1387"
  selfLink: /api/v1/namespaces/default/configmaps/jaeger-configuration
  uid: b28eb5f4-09da-11e9-9f1e-42010aa60002

Здесь ... мне нужно настроить наши собственные URL-адреса для служб сбора и запроса, которые будут подключаться к бэкэнд-сервисуasticsearch?

Как настроить здесь IP-адрес и URL-адреса эластичного поиска?

В компонентах jaeger запрос и сборщик нуждаются в доступе к хранилищу, но я не знаю, что такое конечная точка эластичного входа ...

Является ли это server-urls: http://elasticsearch:9200 правильной конечной точкой?

Я начинаю в мире kubernetes и DevOps, и я ценю, если кто-то может помочь мне в концепциях и указать мне правильный адрес в порядкенастроить Jaeger и эластичный поиск в качествевнутреннее хранилище.

1 Ответ

0 голосов
/ 27 декабря 2018

Когда вы получаете доступ к услуге из модуля в том же пространстве имен , вы можете использовать только имя службы.Пример:

http://elasticsearch:9200

Если вы обращаетесь к службе из модуля в другом пространстве имен , вам также следует указать пространство имен.Пример:

http://elasticsearch.mynamespace:9200
http://elasticsearch.mynamespace.svc.cluster.local:9200

Чтобы проверить, в каком пространстве имен расположена служба, используйте следующую команду:

kubectl get svc --all-namespaces -o wide

Примечание : изменение ConfigMap не применяется к немуразвертывание мгновенно.Обычно вам нужно перезапустить все модули в развертывании, чтобы применить новые значения ConfigMap.В настоящее время нет функции скользящего перезапуска, но вы можете использовать следующую команду в качестве обходного пути:
(заменить имя развертывания и имя модуля на реальные)

kubectl patch deployment mydeployment -p '{"spec":{"template":{"spec":{"containers":[{"name":"my-pod-name","env":[{"name":"START_TIME","value":"'$(date +%s)'"}]}]}}}}'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...