从Kubernetes部署公开SCDF服务

时间:2019-10-02 09:19:29

标签: kubernetes spring-cloud-dataflow

基本问题是如何从Kubernetes集群外部访问Spring Cloud Data Flow服务?

默认情况下,SCDF应用程序将被部署为“ ClusterIP”类型的服务。据我了解,“ ClusterIP”服务无法从群集中公开吗? 我尝试按照here的说明进行操作,即为负载均衡器和节点端口添加部署属性,但是服务始终以“ ClusterIP”类型部署。

stream deploy test --properties "deployer.http.kubernetes.createLoadBalancer=true"
stream deploy test --properties "deployer.http.kubernetes.createNodePort=32123"

通常,部署者属性将应用于流中的所有应用程序,难道不是对每个应用程序都执行此类操作的好方法吗?

1 个答案:

答案 0 :(得分:0)

如果您使用的是Minikube,将使用NodePort部署流,以便在应用程序启动并运行时可以通过HTTP / PORT与之交互。可以使用deployer.<app-name>.kubernetes.createNodePort=32123部署属性进行设置。

但是,在真实的K8s集群中运行时,您必须使用deployer.http.kubernetes.createLoadBalancer=true,因此可以为该应用程序自动创建真实的LB。同样,您将拥有一个外部IP与该应用进行交互。

但是,对于给定的应用程序,您不应该同时做这两个事情。这取决于您要在其中部署流的K8s环境。

上述两个部署属性均可在每个应用程序或给定流中的所有应用程序中配置。可以通过deployer.*...模式触发全局设置。

我希望这可以澄清。