export INGRESS_HOST=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].port}')
export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].port}')
export TCP_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="tcp")].port}')
3条答案
按热度按时间vx6bjr1n1#
这很可能是由于使用的平台没有为istio入口网关提供外部负载平衡器造成的。
根据istio文件:
如果设置了
EXTERNAL-IP
值,则您的环境具有可用于入口网关的外部负载平衡器。如果EXTERNAL-IP
值为<none>
(或永久为<pending>
),则您的环境不为入口网关提供外部负载平衡器。在这种情况下,您可以使用服务的节点端口访问网关。如果您已确定您的环境具有外部负载平衡器,请按照以下说明操作。
设置入口IP和端口:
在某些环境中,负载平衡器可能使用主机名而不是IP地址来公开。在这种情况下,入口网关的
EXTERNAL-IP
值将不是IP地址,而是主机名,并且上述命令将无法设置INGRESS_HOST
环境变量。请使用以下命令更正INGRESS_HOST
值:bbmckpt72#
删除
traefik
服务解决了我在本地主机(开发环境)上的k3 d上的问题。我不是Maven!这可能会有一些副作用或导致其他问题。
xnifntxz3#
如果你使用的是
KIND
,那么你需要先在它上面安装MetalLB
。然后,如果你的istio-ingressgateway
是LoadBalancer
类型,它将获得一个外部IP分配。希望这能有所帮助。