在尝试按照本指南中的说明配置再生控制平面时: https://istio.io/latest/docs/setup/install/multicluster/gateways/
完成所有配置后,如文档所述,“ sleep”应用程序无法与“ httpbin”应用程序进行通信。测试结果始终与“ 503服务不可用”错误相同:
kubectl exec --context=kontiki $SLEEP_POD -n multi-test -c sleep -- curl -k -I httpbin.multi-test-bar.global:8000/headers
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 91 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
HTTP/1.1 503 Service Unavailable
content-length: 91
content-type: text/plain
date: Wed, 07 Oct 2020 13:55:19 GMT
server: envoy
找到的相关日志是:
[2020-10-07T13:58:21.775Z] "HEAD /headers HTTP/1.1" 503 UF,URX "-" "-" 0 0 137 - "-" "curl/7.69.1" "5ccf05b7-d0e3-9e38-a581-8c0bdabc98b3" "httpbin.multi-t0" "10.14.10.99:31383" outbound|8000||httpbin.multi-test-bar.global - 240.0.0.2:8000 172.17.141.20:59704 - default
[2020-10-07T13:58:21.900Z] "- - -" 0 NR "-" "-" 0 0 0 - "-" "-" "-" "-" "-" - - 172.17.184.60:15443 172.31.4.248:62395 - -
[2020-10-07T13:58:21.814Z] "- - -" 0 NR "-" "-" 0 0 0 - "-" "-" "-" "-" "-" - - 172.17.133.59:15443 172.31.4.209:38326 - -
Istio 1.7.3与Istio-operator一起部署在版本1.17的普通k8s集群上。证书的配置如参考指南所述,为httpbin创建的ServiceEntry如下:
apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
name: httpbin-multi-test-bar
spec:
hosts:
- httpbin.multi-test-bar.global
location: MESH_INTERNAL
ports:
- name: http1
number: 8000
protocol: http
resolution: DNS
addresses:
- 240.0.0.2
endpoints:
- address: cluster-2
network: external
ports:
http1: 31383 # nodePort tls exposed port via our proxy
- address: istio-egressgateway.istio-system.svc.cluster.local
ports:
http1: 15443
此错误在此#Issue中也被引用,对于其他人来说,这件事正在发生,而他们修复此问题的方法是移至以前的Istio版本(如1.6.8)。 编辑:我可以确认我的配置适用于1.6.8版,但是在1.7.3下会失败。
能否请您帮我了解发生了什么或如何解决?
答案 0 :(得分:1)
关于该特定问题的报告更多问题:
,到目前为止,如何解决它尚无任何答案。
我建议您在您提到的issue中等待istio devs的回答,并使用1.6.8直到解决。
问题本身可能与1.8中的dns changes有关,但这只是我的想法。
从Istio 1.8开始,Sidecar上的Istio代理将附带由Istiod动态编程的缓存DNS代理。
有关dns更改的更多信息:
并且有docs初步用于1.8多集群安装。