我使用Istio和Envoy 作为 sidecar 代理。我已经部署了bookinfo示例并且它工作正常,但是当我部署我自己的应用程序时,它在 https 或其他外部服务上调用 SQL Server,它给出了异常。
与服务器成功建立连接,但在登录前握手期间发生错误。(提供者:TCP 提供者,错误:35 - 捕获到内部异常)
我使用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 启用的命名空间中。我创建了如下所示的 serviceentry 来创建可访问性。
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