istio 控制pod(vm)的端口转发

将 istio 安装在vm中,并接入k8s系统(vm作为一个pod,但ip仍然是本身的ip,没有使用集群安装时指定的cidr.

原架构
每个服务为一台服务器

ServerA -> ServerB
ServerA -> ServerB
ServerA -> ServerB

现架构

ServiceA -> Istio-Proxy -> ServiceB
ServiceA -> Istio-Proxy -> ServiceB
ServiceA -> Istio-Proxy -> ServiceB

功能需求:
ServiceA 的tcp请求(如 1232端口) 只能转发到 istio-Proxy, 经过代理后,再转发到 ServiceB。中间代理层会执行一些安全策略。文档 https://istio.io/latest/zh/do...

文档里讲的VIP是虚拟服务的IP地址,我这里使用的是 Istio-Proxy 的IP 192.168.3.120

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: tcp-forward-120
spec:
  hosts:
  - svc120 
  addresses: 
  - 192.168.3.120/24
  ports:
  - number: 27017
    name: mongodb
    protocol: MONGO
  location: MESH_EXTERNAL
  resolution: STATIC
  endpoints:
  - address: 192.168.3.61

发现从其它机器(未加入k8s集群)连接到 192.168.3.120的时候,端口并没有转到,而是直接转到120机器的mongodb数据库了。

另不清楚当前使用的 ServcieEntry 是否正确?

阅读 1.1k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进