如何为具有 LoadBalancer 的 Spring SCDF 流应用静态 IP(在 Kubernetes 中)
How to apply a Static IP for Spring SCDF Stream that has a LoadBalancer (in Kubernetes)
我正在使用 Spring SCDF 部署流。这个流也有一个 LoadBalancer。我用
激活了它
spring.cloud.deployer.kubernetes.createLoadBalancer true
流部署者属性。
所以这个 LoadBalancer 现在确实可以工作,并为我提供了一个我可以访问的外部 IP。但是,每次我重新部署流时,此 IP 都会发生变化。
我正在使用 GCP,并且可以提供静态 IP。在 Kubernetes 中,我可以像这样给入口一个静态 IP:
annotations:
kubernetes.io/ingress.global-static-ip-name: "web-static-ip"
我想知道现在如何使用 Spring SCDF 对已部署的流执行相同的操作?
在生产部署设置中,您希望将一个显式负载平衡器 (LB) 附加到所需的应用程序,这样它的服务就可以被其他服务调用,因为会有一个静态 URL/IP 与之互动。即使应用程序正在滚动升级或重新部署,您也会得到可预测的 URL/IP。
以下是 LB 部署示例:
kind: Service
apiVersion: v1
metadata:
name: FOO-lb
namespace: kafkazone
spec:
ports:
- port: 80
name: http
targetPort: 8080
selector:
FOOZ: BAR-APP
type: LoadBalancer
此部署将产生 URL/IP。比方说,FOO-lb
的 IP 地址是:10.20.30.40
.
并且,当您部署流时,您可以将标签选择器附加到所需的应用程序 [例如:deployer.<yourapp>.kubernetes.deploymentLabels=FOOZ: BAR-APP
],因此到 10.20.30.40
的所有传入流量将自动由资源。当然,您将依赖特定 IP 来 post 数据或与其交互,并且它不会改变。
我正在使用 Spring SCDF 部署流。这个流也有一个 LoadBalancer。我用
激活了它spring.cloud.deployer.kubernetes.createLoadBalancer true
流部署者属性。 所以这个 LoadBalancer 现在确实可以工作,并为我提供了一个我可以访问的外部 IP。但是,每次我重新部署流时,此 IP 都会发生变化。
我正在使用 GCP,并且可以提供静态 IP。在 Kubernetes 中,我可以像这样给入口一个静态 IP:
annotations:
kubernetes.io/ingress.global-static-ip-name: "web-static-ip"
我想知道现在如何使用 Spring SCDF 对已部署的流执行相同的操作?
在生产部署设置中,您希望将一个显式负载平衡器 (LB) 附加到所需的应用程序,这样它的服务就可以被其他服务调用,因为会有一个静态 URL/IP 与之互动。即使应用程序正在滚动升级或重新部署,您也会得到可预测的 URL/IP。
以下是 LB 部署示例:
kind: Service
apiVersion: v1
metadata:
name: FOO-lb
namespace: kafkazone
spec:
ports:
- port: 80
name: http
targetPort: 8080
selector:
FOOZ: BAR-APP
type: LoadBalancer
此部署将产生 URL/IP。比方说,FOO-lb
的 IP 地址是:10.20.30.40
.
并且,当您部署流时,您可以将标签选择器附加到所需的应用程序 [例如:deployer.<yourapp>.kubernetes.deploymentLabels=FOOZ: BAR-APP
],因此到 10.20.30.40
的所有传入流量将自动由资源。当然,您将依赖特定 IP 来 post 数据或与其交互,并且它不会改变。