在具有不同端口的多个服务中使用单个静态 IP 地址作为 LoadBalancerIP
Using a single static IP address as LoadBalancerIP across multiple services with different ports
我正在尝试在我的集群上公开一个有状态 mongo 副本集 运行 以供外部访问。
我有三个副本,我为每个具有相同 LoadBalancerIP
的副本创建了一个 LoadBalancer
服务,同时将端口从 10255
依次递增到 10257
。
apiVersion: v1
kind: Service
metadata:
name: mongo-service-0
namespace: datastore
labels:
app: mongodb-replicaset
spec:
loadBalancerIP: staticip
type: LoadBalancer
externalTrafficPolicy: Local
selector:
statefulset.kubernetes.io/pod-name: mongo-mongodb-replicaset-0
ports:
- protocol: TCP
port: 10255
targetPort: 27017
问题是只有一个服务mongo-service-0
使用静态IP部署成功,另一个在一段时间后超时。
我想弄清楚的是,我是否可以在具有不同端口的多个服务中使用单个静态 IP 地址作为 LoadBalancerIP。
由于您为每个 Mongo 副本使用不同的端口,因此您必须创建不同的 Kubernetes Services for each one of the replicas. You can only tie a Kubernetes service with a single load balancer and each load balancer will have its own unique IP (or IPs) address, so you won't be able to share that IP address across a LoadBalancer 类型的服务。
解决方法是使用 NodePort 服务并基本上独立管理您的负载均衡器,并将其指向每个副本的 NodePort。
另一种解决方法是在 Mongo 副本上使用相同的端口并使用相同的 Kubernetes LoadBalancer 服务。您有什么理由不使用它吗?
我正在尝试在我的集群上公开一个有状态 mongo 副本集 运行 以供外部访问。
我有三个副本,我为每个具有相同 LoadBalancerIP
的副本创建了一个 LoadBalancer
服务,同时将端口从 10255
依次递增到 10257
。
apiVersion: v1
kind: Service
metadata:
name: mongo-service-0
namespace: datastore
labels:
app: mongodb-replicaset
spec:
loadBalancerIP: staticip
type: LoadBalancer
externalTrafficPolicy: Local
selector:
statefulset.kubernetes.io/pod-name: mongo-mongodb-replicaset-0
ports:
- protocol: TCP
port: 10255
targetPort: 27017
问题是只有一个服务mongo-service-0
使用静态IP部署成功,另一个在一段时间后超时。
我想弄清楚的是,我是否可以在具有不同端口的多个服务中使用单个静态 IP 地址作为 LoadBalancerIP。
由于您为每个 Mongo 副本使用不同的端口,因此您必须创建不同的 Kubernetes Services for each one of the replicas. You can only tie a Kubernetes service with a single load balancer and each load balancer will have its own unique IP (or IPs) address, so you won't be able to share that IP address across a LoadBalancer 类型的服务。
解决方法是使用 NodePort 服务并基本上独立管理您的负载均衡器,并将其指向每个副本的 NodePort。
另一种解决方法是在 Mongo 副本上使用相同的端口并使用相同的 Kubernetes LoadBalancer 服务。您有什么理由不使用它吗?