【发布时间】:2020-11-11 06:25:50
【问题描述】:
我已经使用 istio 成功将应用部署到 K8s
我们有我们使用的 gw 和虚拟服务,如下所示:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: bher-virtualservice
namespace: ba-trail
spec:
gateways:
- bher-gateway
hosts:
- trialio.cloud.str
http:
- match:
- uri:
prefix: "/"
- uri:
prefix: "/login"
- uri:
prefix: "/static"
- uri:
regex: '^.*\.(ico|png|jpg)$'
route:
- destination:
host: bsa.ba-trail.svc.cluster.local service.namespace.svc.cluster.local
port:
number: 5000
我还定义了service 和deployment。
我想在外部公开我可以访问的服务 喜欢:
https://myapp.host:5000
当我跑步时:
kubectl get svc istio-ingressgateway -n istio-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
istio-ingressgateway LoadBalancer 100.61.114.202 a7151b2063cb-200880.eu-central-1.elb.amazonaws.com 150210:31161/TCP,80:31280/TCP,443:31190/TCP 41d
如何实现?
我能够通过端口转发运行应用程序,但我想要一个直接的外部链接。
【问题讨论】:
-
如果你使用 istio 那么一切都应该通过 istio-ingress-gateway 外部 ip,所以你应该使用
kubectl get svc -n istio-system,检查 istio ingress-gateway 外部 ip 并使用它从外部。如果您为您的服务使用端口转发,那么您并没有使用 istio,而只是您的部署服务。顺便删除service.namespace.svc.cluster.local,因为它被注释为向您展示路由目标主机的语法。
标签: amazon-web-services kubernetes istio