无法访问不带 sidecar 的 Pod
问题现象
不能从一个带 sidecar proxy 的 pod 访问到 Redis 服务。
问题分析
Redis是一个 Headless 服务,而 istio 1.6 之前的版本对 Headless 服务的处理有问题,会缺省启用 mTLS。
解决方案
在 1.6 之前可以采用DR规则禁用该服务的 mTLS 来规避:
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
name: mysql-service
namespace: test
spec:
host: redis-service
trafficPolicy:
loadBalancer:
simple: ROUND_ROBIN
tls:
mode: DISABLE
该问题在 isitio 1.6 中已经修复: https://github.com/istio/istio/pull/24319