我使用 Istio 和特使作为边车代理。我已经部署了bookinfo示例并且其工作正常但是当我部署我自己的应用程序(在https或其他外部服务上调用SQL Server)时,它会给出异常。
已成功与服务器建立连接,但随后成功建立了连接 登录前握手期间发生错误。 (提供者:TCP 提供者,错误:35 - 发现内部异常)
答案 0 :(得分:2)
让Istio应用程序与外部非HTTP服务通信, 使用--includeIPRanges选项https://istio.io/docs/tasks/traffic-management/egress.html#calling-external-services-directly:
使用--includeIPRanges选项的最简单方法是将其传递给用于内部群集服务的IP范围,从而排除外部IP被重定向到sidecar代理。
要让Istio应用程序与外部HTTP服务通信,您必须定义出口规则:https://istio.io/docs/tasks/traffic-management/egress.html#configuring-the-external-services。
答案 1 :(得分:0)
从部署的应用程序连接SQL Server时,我遇到了同样的问题
启用istio的名称空间中的。我创建了如下所示的serviceentry来创建可访问性。
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: access-sql-server-from-mesh
spec:
hosts:
- SQL_SERVER_ENDPOINT
location: MESH_EXTERNAL
ports:
- name: tcp
number: 3306
protocol: TCP
resolution: DNS
$ kubectl apply -f access-sql-server-from-mesh.yaml