У меня проблемы с запуском Консула в сервисе 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).