我是kubernetes的新手。
我们有50个ip地址,ip地址有请求限制。限制是保存在数据库中的一个值。我们希望负载均衡器根据数据库中限制最多的一个来选择它。Kubernetes能做到吗?
首先我建议你阅读关于Kubernetes网络的官方文档-你可以在这里找到它:Kubernetes -networking。特别是阅读有关服务的内容。Kubernetes中的原始负载均衡器从不检查特定于应用程序的数据库。
一种抽象的方式来公开运行在一组作为网络服务的Pods。使用Kubernetes,您不需要修改应用程序来使用不熟悉的服务发现机制。Kubernetes为一组pod提供了自己的IP地址和单一的DNS名称,并且可以跨它们的负载平衡。
业务类型为clusterIP的示例。
Kubernetes为每个新创建的IP地址分配一个稳定、可靠的IP地址服务(ClusterIP),从集群的可用服务IP地址池中获取。Kubernetes还通过添加一个DNS条目为ClusterIP分配一个主机名。ClusterIP和主机名在集群中是唯一的,并且在服务的整个生命周期中不会更改。Kubernetes只如果从集群的配置中删除服务,则释放ClusterIP和主机名。您可以使用ClusterIP或服务的主机名访问运行应用程序的健康Pod。
看一下GKE: GKE- ip -allocation。
您还可以指定您自己的集群IP地址作为a的一部分
Service
创建请求-设置.spec.clusterIP
字段选择的IP地址必须是API服务器已配置的
service-cluster-ip-range
CIDR范围内有效的IPv4或IPv6地址。如果您尝试创建一个具有无效clusterIP地址值的服务,API服务器将返回一个422 HTTP状态码,以指示有问题。
总结一下。Kubernetes负载均衡器永远不会深入到你的应用程序中。要连接到你的应用程序,你需要创建服务。Kubernetes为每个新创建的服务分配一个稳定,可靠的IP地址,您可以从集群内或外部访问您的应用程序。您也可以手动为每个服务分配IP。