Как запустить Consul в сервисной сети Istio

У меня проблемы с запуском Consul в сервисной сети Istio. Я использую HTTPS и шифрование сплетен, которое работало должным образом, прежде чем вводить сайдкары Envoy (с принудительным mTLS). Я пытаюсь запустить кластер Consul из 3 участников и вижу следующие ошибки на каждом члене:

  2020/02/15 21:15:52 [WARN] consul: error getting server health from "consul-2": rpc error getting client: failed to get conn: remote error: tls: protocol version not supported
  2020/02/15 21:15:53 [WARN] consul: error getting server health from "consul-2": context deadline exceeded
  2020/02/15 21:15:53 [INFO] agent: (LAN) joining: [consul-0.cluster consul-1.cluster consul-2.cluster]
  2020/02/15 21:15:54 [WARN] consul: error getting server health from "consul-2": rpc error getting client: failed to get conn: remote error: tls: protocol version not supported
  2020/02/15 21:15:55 [WARN] consul: error getting server health from "consul-2": context deadline exceeded
  2020/02/15 21:15:56 [WARN] consul: error getting server health from "consul-2": rpc error getting client: failed to get conn: remote error: tls: protocol version not supported
  2020/02/15 21:15:56 [WARN] agent: (LAN) couldn't join: 0 Err: 3 errors occurred:
* Failed to join 10.0.2.213: EOF
* Failed to join 10.0.3.123: EOF
* Failed to join 10.0.1.11: Encryption is configured but remote state is not encrypted

  2020/02/15 21:15:56 [WARN] agent: Join LAN failed: <nil>, retrying in 30s
  2020/02/15 21:15:57 [WARN] consul: error getting server health from "consul-2": context deadline exceeded
  2020/02/15 21:15:58 [WARN] consul: error getting server health from "consul-2": rpc error getting client: failed to get conn: remote error: tls: protocol version not supported

Порты для службы консула следующие:

ports:
- name: tcp-server
  port: 8300
  targetPort: tcp-server
- name: tcp-serflan
  protocol: TCP
  port: 8301
  targetPort: tcp-serflan
- name: udp-serflan
  protocol: UDP
  port: 8301
  targetPort: udp-serflan
- name: https
  port: 8501
  targetPort: https

Мое лучшее предположение о том, что происходит, заключается в том, что Envoy не понижается с L7 до L4 для серверных RPC-соединений, как указано в документации, и поэтому Consul пытается выполнить рукопожатие TLS с удаленным сайтом Envoy, а не с удаленным Consul.

Я мог бы либо использовать трафик Consul с открытым текстом с Istio mTLS, либо удалить боковые машины Envoy и сохранить шифрование Consul, но, если возможно, я хотел бы иметь оба шифрования с помощью Consul, но в сетке Istio mTLS (отчасти, чтобы посмотреть, возможно ли это не поддерживает Istio).

0 ответов

Другие вопросы по тегам