acumulación K8S -kubernetes acumulación RabbitMQ

Gracias por compartir el texto - http://bjbsair.com/2020-04-03/tech-info/29908.html

1, Perfil RabbitMQ

RabbitMQ es lograr el Advanced Message Queuing Protocol (AMQP) es un software intermediario de mensajes de código abierto (también conocido como middleware orientado a mensajes). RabbitMQ servidor está escrito en Erlang, y la agrupación de conmutación por error y está construido sobre una plataforma de telecomunicaciones marco abierto. AMQP: Avanzado Message Queue, Protocolo de mensajes de cola avanzada. Es un protocolo de nivel de aplicación estándar abierto para el diseño de middleware orientado a mensajes, en base a este cliente de protocolo y mensaje mensajería middleware puede ser transmitida, no por el producto, lo que limita el desarrollo de las condiciones de luz del lenguaje. AMQP tiene las siguientes características:

  • Fiabilidad (Fiabilidad): El uso de algún mecanismo para garantizar la fiabilidad, tales como la persistencia, la confirmación de la transmisión, confirme la liberación.
  • Flexible de enrutamiento (Routing flexible): Antes de entrar en la cola de mensajes, el mensaje se enruta a través de la Bolsa. Para un típico funciones de enrutamiento, Conejo ha proporcionado algunas de ellas construidas en Cambio de lograr. Para capacidades de enrutamiento más sofisticados, múltiple Exchange puede unirse juntos, pero también darse cuenta de su Exchange a través de un plug-in mecanismo.
  • de mensajes del grupo (Clustering): una pluralidad de servidores RabbitMQ puede formar un clúster, forman un Broker lógico.
  • HA (altamente Avaliable Queues): cola puede ser reflejado en las máquinas de la agrupación, de modo que la cola permanece disponible en caso de que algunos de los nodos del problema.
  • protocolos múltiples (multi-protocolo): Soporte para múltiples Protocolo de mensajes de cola, como STOMP, MQTT similares.
  • cliente multilingüe (muchos clientes): soporta casi todos los lenguajes, como Java, .NET, Ruby y así sucesivamente comúnmente utilizados.
  • Interfaz de gestión (gestión de la interfaz de usuario): proporciona fácil de usar interfaz de usuario, permitiendo a los usuarios controlar y gestionar muchos aspectos del mensaje Broker.
  • Mecanismo de seguimiento (Tracing): Si el mensaje es anormal, RabbitMQ proporciona un mecanismo para el seguimiento de los mensajes, los usuarios pueden averiguar qué ha ocurrido.
  • Plugin mecanismo (Sistema plug-in): proporciona una serie de plug-ins para ser extendido en muchos aspectos, también puede editar sus propios plug-ins.

mensajes RabbitMQ sólo pueden ser almacenados en la cola, el productor (la cifra inferior P) de producción y, finalmente, entregado a la cola de mensajes, el consumidor (C en la figura) se pueden obtener a partir del mensaje y el consumo de cola.

implementación K8S -kubernetes RabbitMQ despliegue

2, el despliegue RabbitMQ

La siguiente es RabbitMQ código definido desplegado, este código consta de dos partes, es decir RabbitMQ Implementación y su servicio de proxy. Reflejando la bitnami / RabbitMQ: últimas. Extranjera expuesta por los puertos de modo NodePort 15672 y 5672, y por el sistema de archivos NFS RabbitMQ fueron los datos persistentes.

#-------------定义RabbitMQ部署-----------------  
apiVersion: apps/v1beta2  
kind: Deployment  
metadata:  
 name: rabbit  
spec:  
 replicas: 1  
 selector:  
   matchLabels:  
     app: rabbit  
 strategy:  
   rollingUpdate:  
     maxSurge: 25%  
     maxUnavailable: 25%  
   type: RollingUpdate  
 template:  
   metadata:  
     labels:  
       app: rabbit  
   spec:  
     containers:  
     - image: bitnami/rabbitmq:latest  
       imagePullPolicy: IfNotPresent  
       name: rabbit  
       ports:  
       - containerPort: 15672  
         name: rabbit15672  
         protocol: TCP  
       - containerPort: 5672   
         name: rabbit5672   
         protocol: TCP  
       resources: {}  
       volumeMounts:  
       - mountPath: /bitnami  
         name: rabbit-persistent-storage  
      dnsPolicy: ClusterFirst  
      restartPolicy: Always  
      schedulerName: default-scheduler  
      securityContext: {}  
      terminationGracePeriodSeconds: 30  
      volumes:  
      - name: rabbit-persistent-storage  
        nfs:  
         path: /home/nfs-share/rabbit  
         server: 10.0.33.201  
  
#-----------------定义rabbit的代理服务--------------  
apiVersion: v1  
kind: Service  
metadata:  
 name: rabbit-service  
spec:  
 ports:  
 - name: rabbit15672  
   nodePort: 31199  
   port: 15672  
   protocol: TCP  
   targetPort: 15672  
 - name: rabbit15672   
   nodePort: 305672   
   port: 5672   
   protocol: TCP   
   targetPort: 5672  
 selector:  
   app: rabbit  
 type: NodePort  

Por kubectl, ejecute el siguiente comando para desplegar base de datos Oracle cúmulo Kubernetes.

$ kubectl create -f rabbitmq.yaml --namespace=kube-public

Después de la implementación se haya completado, se puede ver expuesto RabbitMQ puerto con el siguiente comando:

$ kubectl get svc --namespace=kube-public

3, la validación de despliegue

En la entrada del navegador: http://10.0.33.203:31199/, visita desplegado RabbitMQ. Introduzca su nombre de usuario y contraseña (donde el usuario / bitnami inicial) en la página de inicio de sesión, el sistema entrará en la página de inicio RabbitMQ.

implementación K8S -kubernetes RabbitMQ despliegue

4, la configuración de tiempo de ejecución

En el tiempo de implementación, el contenedor se puede cambiar ajustando el entorno operativo siguientes variables:

  • RABBITMQ_USERNAME: nombre de usuario, por defecto es de usuario
  • RABBITMQ_PASSWORD: contraseña, el valor por defecto bitnami
  • RABBITMQ_HASHED_PASSWORD: hash de contraseña
  • RABBITMQ_VHOST: Después de iniciar la instalación para crear una máquina virtual, el valor predeterminado es /
  • RABBITMQ_ERL_COOKIE: Erlang galleta para determinar si cada línea para permitir las comunicaciones entre diferentes nodos.
  • RABBITMQ_NODE_TYPE: el tipo de nodo, hay limitaciones: estadísticas, cola-RAM o cola -Disc. El valor por defecto estadísticas
  • RABBITMQ_NODE_NAME: nombre de nodo y el anfitrión, por ejemplo: nodo @ nombre de host o nodo. El valor por defecto es de conejo @ localhost.
  • RABBITMQ_NODE_PORT_NUMBER: puerto de nodo, el valor por defecto 5672
  • nombre del clúster, por ejemplo:: RABBITMQ_CLUSTER_NODE_NAME clusternode @ nombre de host
  • RABBITMQ_CLUSTER_PARTITION_HANDLING: mecanismo de recuperación de partición de clúster, el valor por defecto: la ignoran
  • RABBITMQ_MANAGER_PORT_NUMBER: puerto de administración, el valor predeterminado es 15672
  • RABBITMQ_DISK_FREE_LIMIT: espacio RabbitMQ disponible para almacenar los límites de datos cuando debajo de este valor, desencadena la restricción de flujo. El valor predeterminado {mem_relative, 1.0}
  • RABBITMQ_ULIMIT_NOFILES: las limitaciones de recursos, el número máximo de descriptores de archivos abiertos, el valor predeterminado es 65536

Supongo que te gusta

Origin www.cnblogs.com/lihanlin/p/12657669.html
Recomendado
Clasificación