Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

189
Visualizações
Envíe mensajes a RabbitMQ desde fuera del clúster de kubernetes usando nginx-ingress

Estoy tratando de configurar una cola de tareas de RabbitMQ en un clúster de kubernetes y necesito poder completar la cola de tareas desde fuera del clúster de kubernetes. Estoy tratando de lograr esto usando el controlador de ingreso nginx. Me encuentro con errores al intentar declarar una cola o enviar mensajes a una cola existente desde fuera del clúster. Al usar amqp-tools cli en Ubuntu desde fuera del clúster, aparece un error:

 $ export BROKER_URL=amqp://<host-name>:80/rabbitmq $ /usr/bin/amqp-declare-queue --url=$BROKER_URL -q foo -d logging in to AMQP server: invalid AMQP data

Si hago lo mismo desde una máquina virtual dentro del clúster, puedo crear y enviar un mensaje a la cola sin problemas. También puedo conectarme a la interfaz de usuario de administración de RabbitMQ desde fuera del clúster, pero si trato de declarar una cola desde la interfaz de usuario, aparece el Management API returned status code 405 - error, que se muestra en la parte inferior de la pantalla.

Estaba leyendo que el host virtual en RabbitMQ '/' tiene problemas con nginx debido a cómo analiza el host, pero no tengo mucha experiencia con este tipo de cosas y no sé cómo solucionarlo.

Cualquier ayuda con esto sería muy apreciada.

Estoy implementando el controlador de ingreso nginx con el manifiesto recomendado:

 kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/mandatory.yaml

RabbitMQ se implementa con este manifiesto:

 --- apiVersion: v1 kind: Namespace metadata: name: rabbitmq labels: app: rabbitmq --- apiVersion: v1 kind: Service metadata: name: rabbitmq-service namespace: rabbitmq labels: component: rabbitmq spec: type: ClusterIP ports: - name: amqp port: 5672 targetPort: 5672 protocol: TCP - name: http port: 80 targetPort: 15672 protocol: TCP selector: app: taskQueue component: rabbitmq --- apiVersion: extensions/v1beta1 kind: Ingress metadata: name: rabbit-ingress namespace: rabbitmq annotations: nginx.ingress.kubernetes.io/rewrite-target: /$1 nginx.ingress.kubernetes.io/ssl-redirect: "false" spec: rules: - host: <host-name> http: paths: - path: /rabbitmq/?(.*) backend: serviceName: rabbitmq-service servicePort: 5672 --- apiVersion: extensions/v1beta1 kind: Ingress metadata: name: rabbit-manage-ingress namespace: rabbitmq annotations: nginx.ingress.kubernetes.io/rewrite-target: /$1 nginx.ingress.kubernetes.io/ssl-redirect: "false" spec: rules: - host: <host-name> http: paths: - path: /rabbitmq-manage/?(.*) backend: serviceName: rabbitmq-service servicePort: 80 --- apiVersion: v1 kind: ReplicationController metadata: labels: app: taskQueue component: rabbitmq name: rabbitmq-controller namespace: rabbitmq spec: replicas: 1 template: metadata: labels: app: taskQueue component: rabbitmq spec: containers: - image: rabbitmq:3-management name: rabbitmq ports: - containerPort: 5672 - containerPort: 15672 resources: limits: cpu: 100m
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Hasta donde yo sé, RabbitMQ no proporciona una API HTTP para interactuar (al menos no es el valor predeterminado). NGINX-Ingress no puede usar un recurso de Ingress para exponer algo diferente a un servicio HTTP. Eche un vistazo a la documentación para aprender a exponer un servicio basado en TCP o UDP .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda