美文网首页
单节点rabbitmq的k8s配置(一)

单节点rabbitmq的k8s配置(一)

作者: Charles_linzc | 来源:发表于2021-04-19 22:27 被阅读0次

    RabbitMQ官网推荐RabbitMQ在K8S上的安装使用rabbitmq的Kubernetes Operator完成,通过operator搭建rabbitmq cluster比较方便, 但需要额外的operator的下载和安装。这里能,我们需要安装一个单节点的rabbitmq, 使用 社区维护的rabbitmq docker来完成。
    RabbitMQ的docker版本,我们使用3.8.14-management
    ,这个版本包含最新的服务器版本以及管理端工具。
    以下是rabbitmq的k8s配置文件:

    1. service 配置文件
      这里我们创建两个service:rabbitmq-adminweb 和 rabbitmq-server; admin service 使用nodePort方式将管理端口15672映射到本地机器的32001端口,方便访问管理端。
      rabbitmq server 使用5672端口, 只能在K8S cluster内访问。
      使用nodePort方式,

    apiVersion: v1
    kind: Service
    metadata:
    name: rabbitmq-adminweb
    spec:
    type: NodePort
    ports:
    - name: rabbitmq-web
    port: 15672
    targetPort: 15672
    nodePort: 32001
    selector:
    app: rabbitmq

    apiVersion: v1
    kind: Service
    metadata:
    name: rabbitmq-server
    spec:
    ports:

    • port: 5672
      selector:
      app: rabbitmq
    1. deployment的配置

    这里我们使用环境变量设置了vhost以及admin的用户名,密码。


    apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: rabbitmq
    spec:
    replicas: 1
    selector:
    matchLabels:
    app: rabbitmq
    template:
    metadata:
    labels:
    app: rabbitmq
    spec:
    hostname: my-rabbit
    containers:
    - name: rabbitmq
    image: rabbitmq:3.8-management
    imagePullPolicy: IfNotPresent
    ports:
    - name: rabbitmq-web
    containerPort: 15672
    - name: rabbitmq-app
    containerPort: 5672
    env:
    - name: RABBITMQ_DEFAULT_VHOST
    value: /
    - name: RABBITMQ_DEFAULT_USER
    value: admin
    - name: RABBITMQ_DEFAULT_PASS
    value: Admin329
    volumeMounts:
    - name: persisitent-storage-rabbitmq
    mountPath: /var/lib/rabbitmq
    volumes:
    - name: persisitent-storage-rabbitmq
    hostPath:
    path: /mnt/d/data/rabbitmq

    Notes: 因为这次使用的win10 docker desktop +WSL 2 环境安装的k8s, 所以设置的d盘上的数据文件加路径以/mnt/d 开始。

    使用kubectl apply -f 应用配置, rabbitmq pod起来后,可以使用:
    http://<host ip>:32001/ 访问管理端,输入用户名密码后即可看到管理页面。


    image.png
    1. 增加secret文件
      接着我们把RabbitMQ的默认用户和密码放在secret文件里,方便维护。并且修改
      rabbitmq_secret.yaml

    apiVersion: v1
    kind: Secret
    metadata:
    name: rabbitmqsecret
    type: Opaque
    data:
    adminusername: YWRtaW4K
    adminpassword: QWRtaW4xMjMK

    更新的deployment文件

    apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: rabbitmq
    spec:
    replicas: 1
    selector:
    matchLabels:
    app: rabbitmq
    template:
    metadata:
    labels:
    app: rabbitmq
    spec:
    hostname: my-rabbit
    containers:
    - name: rabbitmq
    image: rabbitmq:3.8-management
    imagePullPolicy: IfNotPresent
    ports:
    - name: rabbitmq-web
    containerPort: 15672
    - name: rabbitmq-app
    containerPort: 5672
    env:
    - name: RABBITMQ_DEFAULT_VHOST
    value: /
    - name: RABBITMQ_DEFAULT_USER
    valueFrom:
    secretKeyRef:
    name: rabbitmqsecret
    key: adminusername
    - name: RABBITMQ_DEFAULT_PASS
    valueFrom:
    secretKeyRef:
    name: rabbitmqsecret
    key: adminpassword
    volumeMounts:
    - name: persisitent-storage-rabbitmq
    mountPath: /var/lib/rabbitmq
    volumes:
    - name: persisitent-storage-rabbitmq
    hostPath:
    path: /mnt/d/data/rabbitmq

    相关文章

      网友评论

          本文标题:单节点rabbitmq的k8s配置(一)

          本文链接:https://www.haomeiwen.com/subject/cfnilltx.html