我将 istio 部署到 k8s,一开始运行良好,但一天后,我无法通过 ingress gateway 访问该应用程序。然后检查istio svc状态。它显示 istio 入口网关的外部 IP 正在等待处理。
我检查了服务的日志和事件,但什么也没有。问题最可能的原因是什么?
外部 IP 保持待定状态:

这很可能是由于使用的平台未向 istio 入口网关提供外部负载均衡器而导致的。
\n根据istio文档:
\n\n\n如果
\nEXTERNAL-IP设置了该值,则您的环境具有可用于入口网关的外部负载均衡器。如果该EXTERNAL-IP值为<none>(或永久<pending>),则您的环境不会为入口网关提供外部负载均衡器。此时,您可以使用 service\xe2\x80\x99s节点端口访问网关。
如果您确定您的环境具有外部负载均衡器,请按照以下说明进行操作。
\n设置入口IP和端口:
\nexport INGRESS_HOST=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath=\'{.status.loadBalancer.ingress[0].ip}\')\nexport INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath=\'{.spec.ports[?(@.name=="http2")].port}\')\nexport SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath=\'{.spec.ports[?(@.name=="https")].port}\')\nexport TCP_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath=\'{.spec.ports[?(@.name=="tcp")].port}\')\nRun Code Online (Sandbox Code Playgroud)\n在某些环境中,负载均衡器可能会使用主机名而不是 IP 地址来公开。在这种情况下,ingress gateway\xe2\x80\x99s EXTERNAL-IP 值将不是 IP 地址,而是主机名,并且上述命令将无法设置环境 INGRESS_HOST 变量。使用以下命令更正该 INGRESS_HOST 值:
export INGRESS_HOST=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath=\'{.status.loadBalancer.ingress[0].hostname}\')\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
13497 次 |
| 最近记录: |