我们正在努力在 kubernetes 集群中设置 Spring 云数据流。想知道如何从集群外部启用对已部署应用程序的外部访问。
我们基本上从 PCF 迁移到 kubernetes 环境,PCF 确实有一个我可以指定的域,但我在 kubernetes 部署上没有看到等效的域。
我看到了一些关于使用此部署程序属性的参考
deployer..kubernetes:createLoadBalancer: true
但是外部ip正在等待中,也有一些关于使用的参考 kubernetes.serviceType:NodePort
但从 scdf 仪表板查看时,没有看到它影响我的部署和部署程序属性,没有显示此属性。
所以基本上,我想知道如何为流定义部署的 k8s 部署的 pod 创建等效的 PCF 路由。
举个例子: 如果您使用标准流应用程序 http 接收器部署流,则将
deployer.http.kubernetes.createLoadBalancer=true
添加到部署属性中。
该应用程序将在服务上使用 LoadBalancer 类型进行部署,并会公开一个外部地址(假设您的集群已附加负载均衡器)。
假设流名为
httplogger
,使用 curl
和 jq
提取 url 将如下所示:
JSON=$(curl -s $DATAFLOW_URL/runtime/streams/httplogger)
URL=$(jq -r '._embedded.streamStatusResourceList[0] | .applications._embedded.appStatusResourceList | .[] | select(.name == "http") | .instances._embedded.appInstanceStatusResourceList[0] | .attributes.url')