Kubernetes负载均衡器外部IP待处理

问题描述 投票:0回答:2

我在Kubernetes中创建RabbitMQ集群。我正在尝试添加负载均衡器。但是我无法获得负载均衡器External-IP,它仍在等待处理。

apiVersion: v1
kind: Service
metadata:
  name: rabbitmq
  labels:
    run: rabbitmq
spec:
  type: NodePort
  ports:
  - port: 5672
    protocol: TCP
    name: mqtt
  - port: 15672
    protocol: TCP
    name: ui
  selector:
    run: rabbitmq
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: rabbitmq
spec:
  replicas: 1
  selector:
    matchLabels:
      run: rabbitmq
  template:
    metadata:
      labels:
        run: rabbitmq
    spec:
      containers:
      - name: rabbitmq
        image: rabbitmq:latest
        imagePullPolicy: Always

我的负载均衡器在下面。我给了负载均衡器nodePort是随机的,端口号来自kubernetes创建的RabbitMQ mqtt端口号,目标端口号来自kubernetes创建的RabbitMQ UI端口号

apiVersion: v1
kind: Service
metadata:
  name: loadbalanceservice
  labels:
    app: rabbitmq
spec:
  selector:
    app: rabbitmq
  type: LoadBalancer
  ports:
  - nodePort: 31022
    port: 30601
    targetPort: 31533
docker kubernetes docker-compose rabbitmq kubernetes-pod
2个回答
1
投票

服务类型Loadbalancer仅在支持外部负载平衡器的云提供程序上起作用。将类型字段设置为LoadBalancer会为您的服务配置负载平衡器。由于您所在的环境不支持负载平衡器类型的服务,该请求正在等待处理。在非云环境中,一个更简单的选择是使用nodeport类型的服务。这是使用Nodeport从群集外部访问服务的guide


0
投票

LoadBalancer服务在裸机群集上不起作用。您的LoadBalancer服务也将充当NodePort服务。您可以使用nodeIP:nodePort组合从群集外部访问服务。

如果您确实希望具有自定义端口组合的外部IP访问您的服务,请查看metallb,它在裸机群集上实现了对LoadBalancer类型服务的支持。

© www.soinside.com 2019 - 2024. All rights reserved.