从 Internet 浏览 Istio/k8s 项服务
browsing Istio/k8s services from internet
我已经开始阅读 Istio-in-action(Manning 着)和 Mastering-service-mesh(Packt 着),有些例子我无法 'see' 正确输出。
我在 Ubuntu 20.04 的笔记本电脑上工作,我将 [kind] 用于我的本地 k8s 集群,我可以在其中创建 3 个或更多工作节点。
当我部署一些 Istio 资源(例如虚拟服务)时,我想从我的 Ubuntu 浏览器或不同的客户端(不同的笔记本电脑或手机 phone 浏览服务网格) 但它遗漏了我的 'infrastructure' 中的某些内容 - 是外部负载平衡器还是某些本地 Ubuntu 配置?是否必须与 public 云提供商合作 - GCP/AWS/Azure ;如果是,哪个最简单?我试过 kubectl port-forward
但没有成功。
即使没有 ExternalIP,其他资源也可以(例如 istioctl dashboard kiali/jaeger/prometheus)。
你能帮我找到一个博客或 tutorial/hint/advice 关于从 Internet 浏览 k8s/Istio 服务的必要元素吗?
提前致谢!
在启用 istio-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 部署到 public 云提供商时,将为您创建一个负载均衡器(如 AWS ELB)。设置完成后,EXTERNAL-IP
将从 <pending>
切换到实际 ip,即负载均衡器的 public ip。您可以通过访问该 ip 来访问您的集群。
在您的本地设置中,您没有这种奢侈。但是服务仍然被创建。在 PORT(S)
列中,您可以看到一堆端口。那实际上是一个端口映射。所以你的节点机器的端口被映射到那个服务。
您使用它来获取映射到 http 的端口(端口 80):对我来说,它将是 32564
。或者你可以 运行 这个:
kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}'
现在只需打开您的浏览器并使用您工作人员的 ip 访问集群 <NODE_IP>:<PORT>
(其中 PORT
是上面的那个)。
见docs
我已经开始阅读 Istio-in-action(Manning 着)和 Mastering-service-mesh(Packt 着),有些例子我无法 'see' 正确输出。 我在 Ubuntu 20.04 的笔记本电脑上工作,我将 [kind] 用于我的本地 k8s 集群,我可以在其中创建 3 个或更多工作节点。
当我部署一些 Istio 资源(例如虚拟服务)时,我想从我的 Ubuntu 浏览器或不同的客户端(不同的笔记本电脑或手机 phone 浏览服务网格) 但它遗漏了我的 'infrastructure' 中的某些内容 - 是外部负载平衡器还是某些本地 Ubuntu 配置?是否必须与 public 云提供商合作 - GCP/AWS/Azure ;如果是,哪个最简单?我试过 kubectl port-forward
但没有成功。
即使没有 ExternalIP,其他资源也可以(例如 istioctl dashboard kiali/jaeger/prometheus)。
你能帮我找到一个博客或 tutorial/hint/advice 关于从 Internet 浏览 k8s/Istio 服务的必要元素吗?
提前致谢!
在启用 istio-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 部署到 public 云提供商时,将为您创建一个负载均衡器(如 AWS ELB)。设置完成后,EXTERNAL-IP
将从 <pending>
切换到实际 ip,即负载均衡器的 public ip。您可以通过访问该 ip 来访问您的集群。
在您的本地设置中,您没有这种奢侈。但是服务仍然被创建。在 PORT(S)
列中,您可以看到一堆端口。那实际上是一个端口映射。所以你的节点机器的端口被映射到那个服务。
您使用它来获取映射到 http 的端口(端口 80):对我来说,它将是 32564
。或者你可以 运行 这个:
kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}'
现在只需打开您的浏览器并使用您工作人员的 ip 访问集群 <NODE_IP>:<PORT>
(其中 PORT
是上面的那个)。
见docs