Как запустить Консул в сервисной сетке Istio - PullRequest
0 голосов
/ 16 февраля 2020

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

  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 для соединений RP C сервера, как упомянуто в документации , и поэтому Консул пытается выполнить рукопожатие TLS с удаленной коляской Envoy, а не чем удаленный консул.

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

...