在K8S中,下面创建一个具有n个副本的部署-
$ kubectl run nginx --imaage nginx --replicas 6
但是,如何以负载平衡的方式访问这些副本,因为它们没有任何公共入口点(比如环绕在它们周围的服务)。
那么,部署能够扩展或的目的是什么?如何以负载平衡的方式访问它们(没有通过部署包装的服务)。
发布于 2020-08-26 07:40:31
这取决于使用部署解决的用例。对于大多数用例,应用程序需要通过HTTP/TCP层上的服务公开,以接收副本之间的通信量和负载平衡。
有些应用程序不需要由服务公开并在HTTP或TCP层负载平衡,但如果有一个非HTTP/TCP应用程序定期处理一批记录或外部非HTTP/TCP事件触发的非HTTP/TCP应用程序,则可能需要使用一个示例运行多个副本。在这种情况下进行部署是有意义的,因为您可以轻松地向上/向下或回滚,并利用部署提供的其他关键功能。
因此,简单地说,根据用例部署,没有服务有时是有意义的。服务只需要在HTTP/TCP层的多个副本之间进行负载平衡。
发布于 2020-08-26 07:18:59
复制品
.spec.replicas是一个可选字段,它指定所需Pods的数量。它默认为1,这将有助于复制集管理荚和所需数量的荚应该是可用的,无论库伯奈特斯控制器-管理器将处理这一问题。
好吧,如果您在没有服务的情况下运行部署,那么它就没有任何意义,无论您为一个副本或6个扩展了什么。如果您创建服务并映射到您的部署中,那么kubernetes将负责处理荚之间的负载平衡。有关更多信息,请查看docs https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies的这一节。
https://stackoverflow.com/questions/63592124
复制相似问题