我正在使用 Istio 和 Envoy 作为 sidecar 代理。我已经部署了 bookinfo 示例并且它工作正常,但是当我部署自己的应用程序在 https 或其他外部服务上调用 SQL Server 时,它会给出异常。
已成功与服务器建立连接,但随后 登录前握手期间出错。(提供商:TCP 提供程序,错误:35 - 捕获内部异常(
为了让 Istio 应用程序与外部 TCP 服务通信,https://istio.io/latest/blog/2018/egress-tcp/查看此博客文章。
要让 Istio 应用程序与外部 HTTP 和 TLS 服务进行通信,请选中 https://istio.io/latest/docs/tasks/traffic-management/egress/egress-control/。
我遇到了同样的问题,从我已经部署的应用程序连接SQL服务器
在 Istio 启用命名空间中。我创建了如下所示的服务条目以创建可访问性。
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: sql-replica
spec:
hosts:
- SQL-DNS-NAME or IP
addresses:
- xxx.xx.x.xxx/32
ports:
- number: 5432
name: tcp
protocol: TCP
location: MESH_EXTERNAL
Here in config file xxx.xx.x.xxx ip is that IP which we get by pinging to DNS
$ kubectl apply -f access-sql-server-from-mesh.yaml