construire K8S -kubernetes build RabbitMQ

Merci pour le texte de partage - http://bjbsair.com/2020-04-03/tech-info/29908.html

1, Profil RabbitMQ

RabbitMQ est d'atteindre le Advanced Message Queuing Protocol (de AMQP) est un logiciel de courtier de messages open source (également connue sous le nom middleware orienté message). serveur RabbitMQ est écrit en Erlang, et le regroupement et le basculement est construit sur un cadre de la plate - forme de télécommunications ouverte. AMQP: avancée Message Queue, Advanced Message Queuing Protocol. Il est un protocole de couche d'application standard ouvert pour la conception middleware orienté message, basé sur ce client de protocole et un message middleware de messagerie peuvent être transmis, et non par le produit, ce qui limite le développement des conditions d' éclairage de la langue. AMQP présente les caractéristiques suivantes:

  • Fiabilité (Reliablity): Utiliser un mécanisme pour assurer la fiabilité, tels que la persistance, la confirmation de transmission, confirmer la libération.
  • Routage flexible (routage flexible): Avant d' entrer dans la file d' attente de messages, le message est acheminé par la Bourse. Pour une des fonctions de routage typiques, Lapin a fourni quelques intégré dans Exchange pour atteindre. Pour les capacités de routage plus sophistiqués, multiples Exchange peut se lier ensemble, mais aussi réaliser leur échange par l' intermédiaire d' un plug-in mécanisme.
  • un message de cluster (Clustering): une pluralité de serveurs RabbitMQ peuvent former un groupe, forment un courtier logique.
  • HA (très Avaliable): Queues file d' attente peut être sur les machines en miroir du cluster, de sorte que la file d' attente reste disponible en cas certains des nœuds du problème.
  • protocoles multiples (multi-protocoles): gestion de plusieurs messages Protocole Queuing, comme STOMP, comme MQTT.
  • client multilingue ( De nombreux clients): prend en charge presque toutes les langues utilisées couramment, telles que Java, .NET, Ruby et ainsi de suite.
  • Interface de gestion (interface de gestion): fournit facile à utiliser l' interface utilisateur, ce qui permet aux utilisateurs de surveiller et de gérer de nombreux aspects du message Broker.
  • Mécanisme de suivi (traçage): Si le message est anormal, RabbitMQ fournit un mécanisme de suivi des messages, les utilisateurs peuvent savoir ce qui est arrivé.
  • Plugin mécanisme (système plug - in): fournit un certain nombre de plug-ins pour être étendu à bien des égards, vous pouvez également modifier vos propres plug-ins.

les messages d'RabbitMQ ne peuvent être stockées dans la file d'attente, le producteur (le chiffre le plus bas P) production et finalement remis le message de file d'attente, le consommateur (C sur la figure) peuvent être obtenus à partir du message de file d'attente et de la consommation.

déploiement K8S -kubernetes RabbitMQ déploiement

2, le déploiement RabbitMQ

Ci - dessous RabbitMQ défini un code déployé, ce code est constitué de deux parties, à savoir RabbitMQ déploiement et son service proxy. Reflétant le bitnami / rabbitmq: plus tard. Étrangers exposés par les ports en mode NodePort 15672 et 5672, et par le système de fichiers nfs RabbitMQ ont été données persistantes.

#-------------定义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  

Par kubectl, exécutez la commande suivante pour déployer cluster base de données Oracle Kubernetes.

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

Une fois le déploiement terminé, vous pouvez voir le port exposé RabbitMQ avec la commande suivante:

$ kubectl get svc --namespace=kube-public

3, validation du déploiement

Dans l'entrée du navigateur: http://10.0.33.203:31199/, visite déployée RabbitMQ. Entrez votre nom d'utilisateur et mot de passe (où l'utilisateur initial / bitnami) dans la page de connexion, le système entrera RabbitMQ page d'accueil.

déploiement K8S -kubernetes RabbitMQ déploiement

4, la configuration de l'exécution

Au moment du déploiement, le conteneur peut être modifié en définissant l'environnement d'exploitation variables suivantes:

  • RABBITMQ_USERNAME: nom d'utilisateur, par défaut est l' utilisateur
  • RABBITMQ_PASSWORD: mot de passe, la valeur par défaut bitnami
  • RABBITMQ_HASHED_PASSWORD: mot de passe haché
  • RABBITMQ_VHOST: Après le démarrage de l'installation pour créer un hôte virtuel, la valeur par défaut est /
  • RABBITMQ_ERL_COOKIE: biscuit Erlang pour déterminer si chaque ligne pour permettre les communications entre les différents noeuds.
  • RABBITMQ_NODE_TYPE: Type de noeud, il y a des limitations: les statistiques, la file d' attente ou file d' attente-ram -Disc. La valeur par défaut stats
  • RABBITMQ_NODE_NAME: nom de noeud et hôte, par exemple: noeud @ nom d' hôte ou noeud. La valeur par défaut est lapin @ localhost.
  • RABBITMQ_NODE_PORT_NUMBER: port noeud, la valeur par défaut 5672
  • RABBITMQ_CLUSTER_NODE_NAME: nom du cluster, par exemple: clusternode @ nom d' hôte
  • RABBITMQ_CLUSTER_PARTITION_HANDLING: mécanisme de récupération de partition cluster, la valeur par défaut: l'ignorer
  • RABBITMQ_MANAGER_PORT_NUMBER: port de gestion, la valeur par défaut est 15672
  • RABBITMQ_DISK_FREE_LIMIT: espace RabbitMQ disponible pour le stockage de données lorsque les limites ci - dessous de cette valeur, déclenche la restriction d'écoulement. La valeur par défaut {mem_relative, 1.0}
  • RABBITMQ_ULIMIT_NOFILES: contraintes de ressources, le nombre maximum de descripteurs de fichiers ouverts, la valeur par défaut est 65536

Je suppose que tu aimes

Origine www.cnblogs.com/lihanlin/p/12657669.html
conseillé
Classement