K8Sビルド-kubernetesビルドのRabbitMQ

共有テキストをありがとう- http://bjbsair.com/2020-04-03/tech-info/29908.html

1、RabbitMQのプロフィール

RabbitMQのは、高度なメッセージキュープロトコル(AMQP)は、オープンソースのメッセージ・ブローカー・ソフトウェア(また、メッセージ指向ミドルウェアとして知られている)で達成することです。RabbitMQのサーバは、Erlangで書かれており、クラスタリングとフェールオーバーはオープンな通信プラットフォームのフレームワーク上に構築されています。AMQP:高度なメッセージキュー、高度なメッセージキュープロトコル。これは、このプロトコルのクライアントとメッセージングミドルウェアメッセージに基づいて、メッセージ指向ミドルウェアの設計のためのオープンな標準のアプリケーション層プロトコルは、言語光条件の開発を制限し、ない製品により、送信することができることです。AMQPは、次の特性があります。

  • 信頼性(Reliablity):このような持続性、送達確認としての使用の信頼性を確保するためにいくつかのメカニズムは、解放を確認します。
  • 柔軟なルーティング(柔軟なルーティング):メッセージキューに入る前に、メッセージは、Exchange経由でルーティングされます。典型的なルーティング機能のために、ウサギは、いくつかの組み込みの交換を達成するために提供してきました。より洗練されたルーティング機能では、複数のExchangeは、互いに結合することができますが、また、プラグイン機構を通じて交流を実現します。
  • クラスタ・メッセージ(クラスタリング):サーバRabbitMQの複数のクラスタを形成する論理ブローカを形成することができます。
  • HA(高Avaliableキュー)のキューは、キューがケース問題のノードの一部で利用可能なままであるように、クラスタ内のマシン上にミラーリングされてもよいです。
  • 複数のプロトコル(マルチプロトコル):サポート複数のメッセージキュープロトコル、例えばストンプ、MQTTなどが挙げられます。
  • 多言語クライアント(多くのクライアント):ほぼすべての一般的なJavaや.NET、Rubyなどなどの言語、使用をサポート。
  • 管理インタフェース(管理UI)は:ユーザが監視し、メッセージ・ブローカーの多くの側面を管理することができ、ユーザー・インタフェースを使用するように簡単に提供します。
  • メカニズム(トレース)をトラッキング:メッセージに異常がある場合は、RabbitMQのは、メッセージを追跡するためのメカニズムを提供し、ユーザーは何が起こったのかを知ることができます。
  • メカニズムのプラグイン(プラグインシステム):あなたはまた、独自のプラグインを編集することができ、プラグインの数は、多くの方法で拡張することがあります。

RabbitMQのメッセージのみをキューに格納することができ、キューメッセージに配信プロデューサ(下図のP)生産し、最終的に、(図中C)消費者は、キューメッセージと消費から得ることができます。

K8S展開-kubernetes展開のRabbitMQ

2、RabbitMQの展開

以下は、RabbitMQのは展開コードを定義して、このコードは二つの部分、すなわち、から構成RabbitMQの展開とそのプロキシサービス。最新:bitnami / RabbitMQのミラーリング。外国人はNodePortモードポート15672および5672によって公開された、およびNFSファイルシステムでのRabbitMQは、永続的なデータでした。

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

kubectlすることにより、OracleデータベースKubernetesクラスタをデプロイするには、次のコマンドを実行します。

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

展開が完了したら、RabbitMQのは、次のコマンドでポートを公開表示することができます。

$ kubectl get svc --namespace=kube-public

3、展開の検証

ブラウザ入力で:http://10.0.33.203:31199/、訪問のRabbitMQを展開しました。ログインページにユーザー名とパスワード(初期ユーザー/ bitnami)を入力し、システムがRabbitMQのホーム・ページに入ります。

K8S展開-kubernetes展開のRabbitMQ

4、実行時設定

展開時には、コンテナは、変数以下の動作環境を設定することで変更することができます:

  • RABBITMQ_USERNAME:ユーザー名、デフォルトは、ユーザ
  • RABBITMQ_PASSWORD:パスワード、デフォルト値bitnami
  • RABBITMQ_HASHED_PASSWORD:ハッシュされたパスワード
  • RABBITMQ_VHOST:仮想ホストを作成するには、インストールを開始した後、デフォルトは/
  • RABBITMQ_ERL_COOKIE:各ラインは異なるノード間の通信を許可するかどうかを決定するためのアーランクッキー。
  • RABBITMQ_NODE_TYPE:ノードタイプ、制限があります:統計、キュー・ラムまたはキュー -disc。デフォルト値の統計
  • RABBITMQ_NODE_NAME:ノード名およびホスト、例えば:ノードのホスト名またはノード@。デフォルト値はlocalhostの@ウサギ。
  • RABBITMQ_NODE_PORT_NUMBER:ノードのポートは、デフォルト値5672
  • RABBITMQ_CLUSTER_NODE_NAME:クラスタ名、例えば:クラスタノード@ホスト名
  • RABBITMQ_CLUSTER_PARTITION_HANDLING:クラスタパーティションの回復メカニズム、デフォルト値:無視
  • RABBITMQ_MANAGER_PORT_NUMBER:管理ポートは、デフォルトは15672
  • RABBITMQ_DISK_FREE_LIMIT:ときにこの値を下回るデータ範囲を記憶するために利用可能なRabbitMQの空間は、流量制限をトリガします。デフォルト値{mem_relative、1.0}
  • RABBITMQ_ULIMIT_NOFILES:リソースの制約、開いているファイル記述子の最大数は、デフォルト値は65536

おすすめ

転載: www.cnblogs.com/lihanlin/p/12657669.html
おすすめ