Местный консул присоединяется к K8s Consul Mac - PullRequest
0 голосов
/ 17 января 2020

Итак, я сейчас работаю в своем локальном кластере Kubernetes (работающем на docker) со стабильной / консул-диаграммой от helm.

  $ helm install -n wet-fish --namespace consul stable/consul

Это создает две службы

==> v1/Service
NAME                TYPE       CLUSTER-IP      EXTERNAL-IP  PORT(S)                                                                           AGE
wet-fish-consul     ClusterIP  None            <none>       8500/TCP,8400/TCP,8301/TCP,8301/UDP,8302/TCP,8302/UDP,8300/TCP,8600/TCP,8600/UDP  0s
wet-fish-consul-ui  NodePort   10.110.229.223  <none>       8500:30276/TCP     

Таким образом, это означает, что я могу запустить localhost:30276 и увидеть пользовательский интерфейс консула.

Теперь я работаю на своей локальной машине

  $ consul agent -dev -config-dir=./consul.d -node=machine
  $ consul join 127.0.0.1:30276

Это просто приводит к:

Error joining address '127.0.0.1:30276': Unexpected response code: 500 (1 error occurred:
        * Failed to join 127.0.0.1: received invalid msgType (72), expected pushPullMsg (6) from=127.0.0.1:30276

)
Failed to join any nodes.

и

2020/01/17 15:17:35 [WARN] agent: (LAN) couldn't join: 0 Err: 1 error occurred:
        * Failed to join 127.0.0.1: received invalid msgType (72), expected pushPullMsg (6) from=127.0.0.1:30276

    2020/01/17 15:17:35 [ERR] http: Request PUT /v1/agent/join/127.0.0.1:30276, error: 1 error occurred:
        * Failed to join 127.0.0.1: received invalid msgType (72), expected pushPullMsg (6) from=127.0.0.1:30276

 from=127.0.0.1:59693

Должен быть способ запустить локального агента консула, который может подключиться к серверу консула k8s ...

Это на Ма c так что сеть не так хороша ...

1 Ответ

2 голосов
/ 19 января 2020

Здесь могут быть две проблемы, во-первых, консул-агент -dev запускает агента в режиме разработки. По умолчанию режим dev запускает как сервер, так и агент. Это может быть одной из причин ошибки.

Другая проблема может быть связана с локальным хостом: сервер, работающий в Kubernetes, попытается проверить работоспособность локальных агентов. Он должен быть в состоянии пропинговать локального агента, поэтому, даже если вам удастся присоединиться на первом этапе, он, вероятно, не сможет проверить работоспособность. Легко, одна вещь, которую вам, вероятно, придется сделать, это установить рекламный адрес для локального агента (не kube). Docker для ма c имеет имя хоста docker.for.mac.localhost, которое является маршрутизируемым IP-адресом локальной машины из контейнера. При запуске локального агента, если для рекламного адреса задано значение ip этого хоста, сервер Kubernetes Consul должен иметь возможность маршрутизировать к локально работающему агенту.

Потенциальное исправление: 1. Убедитесь, что локальный агент запускается на клиенте. режим (вручную настроить не -dev) 2. Установить адрес advertise advertise по ip-адресу, который маршрутизируется из Kubernetes docker.for.mac.localhost

Дайте мне крик, если это не работает для вас, я использовал такую ​​настройку, как это я, 9/10, это сеть между Docker и локальной машиной.

С уважением,

Ni c

...