Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes最佳实践-向internet公开任意数量的播客_Kubernetes_Kubernetes Pod_Kubernetes Service_Kubernetes Networkpolicy_Kubernetes Networking - Fatal编程技术网

Kubernetes最佳实践-向internet公开任意数量的播客

Kubernetes最佳实践-向internet公开任意数量的播客,kubernetes,kubernetes-pod,kubernetes-service,kubernetes-networkpolicy,kubernetes-networking,Kubernetes,Kubernetes Pod,Kubernetes Service,Kubernetes Networkpolicy,Kubernetes Networking,我的应用程序需要任意数量的pod才能将它们的服务公开给internet。我不确定最好的方法是什么,允许从外部服务器(让我们称之为客户机)发现这些POD 工作流由请求创建“车间”部署的外部服务器(客户端)和提供车间ID的外部服务器(客户端)组成。然后,Kubernetes创建部署,并在部署旁边创建一个pod以及客户端将在pod容器中运行的API 客户机应该能够看到所有车间pod实例,并且必须能够识别哪个pod属于哪个车间 我已经简化了实际的kubernetes基础设施。它使用CRD和运营商来建立更

我的应用程序需要任意数量的pod才能将它们的服务公开给internet。我不确定最好的方法是什么,允许从外部服务器(让我们称之为客户机)发现这些POD

工作流由请求创建“车间”部署的外部服务器(客户端)和提供车间ID的外部服务器(客户端)组成。然后,Kubernetes创建部署,并在部署旁边创建一个pod以及客户端将在pod容器中运行的API

客户机应该能够看到所有车间pod实例,并且必须能够识别哪个pod属于哪个车间


我已经简化了实际的kubernetes基础设施。它使用CRD和运营商来建立更复杂的基础设施,但只有pod的API及其可发现性应该引起客户的关注。什么是实现这一点的最佳方法?

如果API是HTTP,那么我们可能使用入口?您只有使用nodePort公开的入口控制器(如traefik),它负责代理到所需的特定于客户端的API服务。 如果它们不是HTTP,您可以使用nginx设置这种反向代理。Idea是相同的—所有客户端都使用单个API端点,并负责按子域或路径代理


关于发现-为什么不向客户端提供带名称空间的kubeconfig?

理想情况下,我认为可以使用无头服务器/节点端口的混合模式,在这种模式下,我们可以访问服务端点以查看所有可用的pod端点。我可以简单地在每个“研讨会”中使用一个节点端口,但是一旦创建了相应的POD,客户机如何知道访问这些POD的端口呢?我可以让客户指定每个车间的可用端口,但我更愿意避免这种情况,因为以后pod可能会被许多不同的客户访问,这些客户可能来来去去,而不仅仅是创建时周围的客户。因此,服务的可发现性很重要。我最终将我的车间ID映射到我的nodeport,并使用外部ngin代理(我已经设置并运行了其他流量)将uri路径重定向到相应的nodeport