我已经开始阅读Istio in action( Manning)和Mastering-service-mesh ( Packt),还有一些我无法“看到”正确输出的例子。我用Ubuntu20.04在我的笔记本电脑上工作,我在本地k8s集群中使用了一种类型,在这里我可以创建3个或更多的工作节点。
当我部署一些Istio资源(例如虚拟服务)时,我想浏览该服务--从我的Ubuntu浏览器或从不同的客户端(另一台笔记本或手机)浏览网格,但它遗漏了我的“基础设施”中的一些东西--是外部负载均衡器还是本地Ubuntu配置?是否必须与公共云提供商- GCP/AWS/Azure合作;如果是,哪个是最简单的?我试过用kubectl port-forward,但没有成功。
即使没有ExternalIP,其他资源也可以(例如istioctl仪表板、kiali/jaeger/prometheus)。
你能帮我找到一个博客或教程/提示/建议,关于从互联网浏览k8s/Istio服务所必需的元素吗?
提前谢谢你!
发布于 2021-10-13 18:46:28
当使用启用ingressgateway的ingressgateway安装istio时,将在istio-system命名空间中创建具有该名称的服务。
❯ kubectl get svc -n istio-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
istio-ingressgateway LoadBalancer 100.71.98.21 <pending> 80:32564:80/TCP,...当将istio部署到公共云提供商时,这将为您创建一个负载均衡器(如AWS )。当设置完成后,EXTERNAL-IP将从<pending>切换到实际ip,即负载均衡器的公共ip。您可以通过访问该ip来访问群集。
在你的本地设置中,你没有这种奢侈。但服务仍在创建中。在PORT(S)列中,您可以看到一堆端口。这实际上是一个端口映射。因此,您的节点计算机的端口正在映射到该服务。
您可以使用它将端口映射到http (端口80):对我来说,它将是32564。或者你可以运行这个:
kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}'现在,只需打开您的浏览器,并通过访问<NODE_IP>:<PORT> (其中PORT是上面的一个),使用您的工作人员的一个ip访问集群。
请参阅文档
https://stackoverflow.com/questions/69547814
复制相似问题