Kubernetes 是否可以使用单个GKE入口控制器拥有多个入口资源
在 它指出: 创建入口对象时,GKE入口控制器将创建一个Google Cloud HTTP(S)负载平衡器,并根据入口及其相关服务中的信息对其进行配置 对我来说,似乎我不能有多个单一的GCP入口控制器。相反,GKE为每个入口资源创建一个新的入口控制器 这是真的吗,还是GKE中有可能使用一个入口控制器拥有多个入口资源 我希望有一个GCP LoadBalancer作为入口控制器,配置静态IP和DNS,然后在集群中运行多个应用程序,每个应用程序使用特定于应用程序的主机和/或路径规范注册自己的入口资源Kubernetes 是否可以使用单个GKE入口控制器拥有多个入口资源,kubernetes,google-cloud-platform,google-kubernetes-engine,kubernetes-ingress,Kubernetes,Google Cloud Platform,Google Kubernetes Engine,Kubernetes Ingress,在 它指出: 创建入口对象时,GKE入口控制器将创建一个Google Cloud HTTP(S)负载平衡器,并根据入口及其相关服务中的信息对其进行配置 对我来说,似乎我不能有多个单一的GCP入口控制器。相反,GKE为每个入口资源创建一个新的入口控制器 这是真的吗,还是GKE中有可能使用一个入口控制器拥有多个入口资源 我希望有一个GCP LoadBalancer作为入口控制器,配置静态IP和DNS,然后在集群中运行多个应用程序,每个应用程序使用特定于应用程序的主机和/或路径规范注册自己的入口资源
请注意,一般来说,我对GKE、GCP和Kubernetes都很陌生,所以可能是我误解了什么。是的,对于多个入口资源,可以使用单个入口控制器 您可以根据路径要求创建多个入口资源,所有入口资源都将由单个入口控制器管理 还有多个入口控制器选项可用,您也可以使用Nginx创建一个LB并管理路径 在Kubernetes内部如果您使用类型创建服务负载平衡器它将在GCP中创建新的LB资源,因此请确保您的微服务类型为
ClusterIP
,并且您的所有流量都通过入口路径进入K8s集群
当您设置入口控制器时,它将创建一个类型为
LoadBalancer
的服务,您可以在DNS服务器中使用该IP将子域和路径转发到K8s群集。我认为您实际提出的问题与您所写的略有不同。您想知道多个入口资源是否可以链接到单个GCP负载平衡器,而不是GKE入口控制器。基于,集群中只有一个GKE入口控制器,负责实现多个资源和提供多个负载平衡器
所以,直接回答这个问题(因为我一直在寻找一个直截了当的答案!):
将多个入口资源合并到单个Google云负载中
不支持平衡器
资料来源:
悲哀
但是,使用nginx ingress controller至少可以最大限度地减少配置的外部(GCP)负载平衡器的数量(它只提供一个TCP负载平衡器),但由于负载平衡器用于TCP流量,因此它无法终止SSL或为您应用防火墙规则(例如,不能使用云防护)
我所知道的在GCP中使用单个HTTPS负载平衡器终止SSL并将流量路由到GKE中的多个服务的唯一方法是将入口合并到单个资源中,并在一个位置定义所有路径和证书
(如果有人想出了一种使用多个独立入口资源的方法,我很乐意听到!)谢谢,现在我觉得这很有意义。因此,我不应该使用GKE入口,而应该使用GCP LB,并使用Nginx或Ambassador等作为入口控制器。听起来很合理。感谢您提供了非常清晰的答案,它解释了很多。您可以根据您的需求使用任何东西,因为Ambassador有一些Nginx不支持的功能,用于GKE ingress。这取决于组织的要求或您正在运行的预期流量的工作负载类型。