如何通过Istio实现与K8s Service的安全通信且无需重新配置应用
Istio 实现Pod间HTTPS访问操作指南
无需修改应用代码,仅通过Istio配置即可实现需求,操作步骤如下:
- 先确认所有参与通信的Pod已经正常注入Istio Sidecar(istio-proxy容器),且服务的端口命名符合Istio协议规范(格式为
[协议]-[名称],如http-actuator),这是Istio流量拦截的基础。 - 配置对等认证策略,开启命名空间级的mTLS强制加密,证书的签发、轮换、验证全由Istio自动管理,无需手动维护:
apiVersion: security.istio.io/v1beta1 kind: PeerAuthentication metadata: name: default namespace: 替换为你的服务所在命名空间 spec: mtls: mode: STRICT
- 配置目标服务的DestinationRule,指定访问该服务时使用Istio自动签发的mTLS证书:
apiVersion: networking.istio.io/v1beta1 kind: DestinationRule metadata: name: myservice1 namespace: 替换为你的服务所在命名空间 spec: host: myservice1 trafficPolicy: tls: mode: ISTIO_MUTUAL
- 如果你需要自定义路由规则,可以直接在已有的VirtualService中配置对应路径的转发逻辑,不需要额外调整TLS相关参数,Sidecar会自动处理HTTPS请求的加密、解密流程。
配置完成后,直接在Pod内执行curl https://myservice1:8080/actuator/info即可正常拿到返回结果,整个TLS握手、加解密过程对应用完全透明,不需要修改任何应用配置。
内容的提问来源于stack exchange,提问作者letthefireflieslive
相关产品推荐
相关产品推荐

