我使用istio-auth.yaml在Istio 0.8.0的Google Kubernetes Engine上建立了一个集群。
我完全遵循了本教程:https://istio.io/docs/tasks/traffic-management/egress/。
入口有效,我的所有路线和吊舱均使用https,但是我的集装箱无法与外界通信。
如果我将睡眠应用程序(本教程中使用的那个应用程序)部署在未启用sidecar注入的命名空间中,那么进行卷曲操作就可以了。到任何路线。
我尝试添加resolution:DNS
,resolution:NONE
,location: MESH_EXTERNAL
。
我已尝试添加目标规则来禁用出口网关上的TLS,如此问题所示:
https://github.com/istio/istio/issues/7140
这是其文档中所示的服务条目。
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: google-ext
spec:
hosts:
- www.google.com
ports:
- number: 443
name: https
protocol: HTTPS
这是我运行要执行到睡眠容器中的命令,运行curl和结果:
$ export SOURCE_POD=$(kubectl get pod -l app=sleep -o jsonpath={.items..metadata.name}) && kubectl exec -it $SOURCE_POD -c sleep -- curl h
ttps://www.google.com
curl: (35) Unknown SSL protocol error in connection to google.com:443
command terminated with exit code 35
如果有人有任何建议或想法,我非常愿意尝试任何一款。
如果您还需要更多信息,我们很乐意提供。
$ istioctl version
Version: 0.8.0
GitRevision: 6f9f420f0c7119ff4fa6a1966a6f6d89b1b4db84
User: root@48d5ddfd72da
Hub: docker.io/istio
GolangVersion: go1.10.1
BuildStatus: Clean
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.2", GitCommit:"5fa2db2bd46ac79e5e00a4e6ed24191080aa463b", GitTreeState:"clean", BuildDate:"2018-01-18T10:09:24Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"windows/amd64"}
Server Version: version.Info{Major:"1", Minor:"10+", GitVersion:"v1.10.4-gke.2", GitCommit:"eb2e43842aaa21d6f0bb65d6adf5a84bbdc62eaf", GitTreeState:"clean", BuildDate:"2018-06-15T21:48:39Z", GoVersion:"go1.9.3b4", Compiler:"gc", Platform:"linux/amd64"}
答案 0 :(得分:0)
我刚刚使用auth检查了您使用Istio 0.8.0编写的ServiceEntry,它对我有用。请注意,服务条目定义的传播可能需要花费几秒钟的时间,因此我将等待30秒,然后重试。