web-dev-qa-db-ja.com

Kubernetesで基本的なrabbitmqをセットアップする方法

Kubernetesクラスターで永続性やセキュリティ要件なしに、基本的なrabbit mqインスタンス(クラスターセットアップなし)をセットアップする必要があります。

私が必要なもの:

レプリカ= 1のステートフルセットとして実行されている単一のウサギmqポッドで、特定のURL(amgpポートと管理インターフェースポート)を介してクラスターの内側と外側から到達します。

私が必要としないもの:

  • 粘り強さ
  • 安心
  • クラスター設定

これまでに見つけたヘルムチャートはすべて、クラスタリングや永続化などのプロダクションセットアップに対応していますが、インスタンスをテストにのみ使用するので、これは必要ありません

これは私がこれまでに持っているものです:

apiVersion: v1
kind: Service
metadata:
  name: rs-rmq-mgt
spec:
  selector:
    app: rs-rmq
  ports:
  - protocol: TCP
    port: 1337
    targetPort: 15672
  type: NodePort
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: rs-rmq
spec:
  selector:
    matchLabels:
      app: rs-rmq
  serviceName: "rs-rmq"
  replicas: 1
  template:
    metadata:
      labels:
        app: rs-rmq
    spec:
      containers:
      - name: rs-rmq
        image: rabbitmq:management
        ports:
        - containerPort: 25672
        - containerPort: 5672
        - containerPort: 4369
        - containerPort: 15672
6
Martin

基本的なrabbitmqインスタンスには、このStatefulSet yamlファイルを使用します。

apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: rabbitmq
spec:
  replicas: 1
  serviceName: rabbitmq
  selector:
    matchLabels:
      app: rabbitmq
  template:
    metadata:
      labels:
        app: rabbitmq
    spec:
      containers:
      - name: rabbitmq
        image: rabbitmq:3-management
        env:
        - name: "RABBITMQ_ERLANG_COOKIE"
          value: "1WqgH8N2v1qDBDZDbNy8Bg9IkPWLEpu79m6q+0t36lQ="
        volumeMounts:
        - mountPath: /var/lib/rabbitmq
          name: rabbitmq-data
      volumes:
        - name: rabbitmq-data
          hostPath:
            path: /data/rabbitmq
            type: DirectoryOrCreate

2
Hardeep

これを行う適切な方法は、専用のhelm-chart( stable/rabbitmq )と helm (Kubernetesパッケージマネージャー)を介してrabbitmqをインストールすることです。その主な理由:この方法は、オープンソースコミュニティによって徹底的にテストおよび検証されています。

ショートカットしたい場合は、Kubernetes公式ウェブサイトから次のタスクを参照してください: メッセージキューサービスの開始 (rabbitmq)。必要なすべてのマニフェストファイルへのリンクがあります。

1
Nepomucen

私はそれを行う最も簡単な方法は Helm を使用することだと思います:

helm install stable/rabbitmq

次に、チャートの出力ノートの指示を読んでください:)

0
CoderMan

レプリカと永続的なものだけを必要としない場合。 stsではなく、単純なポッド展開を使用できます。 sts docを参照してください

kubectl run rabbitmq --image=rabbitmq:management --expose --port=15672 --restart=Never
--dry-run -o yaml > rabbitmq.yml

関連するコンテナポートを編集し、ポッドを作成します。

kubectl create -f rabbitmq.yml

NodePortとしてサービスを公開します。

kubectl expose po rabbitmq --port 15672

これで、外部からアクセスできます

NodesIP:NodePort

そして内部的には、

[svc]。[namespace] .svc

0
hariK