K8S 部署rabbitmq集群

版本介绍

名称 版本
k8s 1.18
rabbitmq 3.8

命名空间:rabbitmq 我这里已经建立

configmap 配置文件

[root@k8s-master01 rabbitmq]# cat configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:name: rabbitmq-confignamespace: rabbitmq
data:enabled_plugins: |[rabbitmq_management,rabbitmq_peer_discovery_k8s].rabbitmq.conf: |## Cluster formation. See https://www.rabbitmq.com/cluster-formation.html to learn more.cluster_formation.peer_discovery_backend  = rabbit_peer_discovery_k8scluster_formation.k8s.host = kubernetes.default.svc.cluster.local## Should RabbitMQ node name be computed from the pod's hostname or IP address?## IP addresses are not stable, so using [stable] hostnames is recommended when possible.## Set to "hostname" to use pod hostnames.## When this value is changed, so should the variable used to set the RABBITMQ_NODENAME## environment variable.cluster_formation.k8s.address_type = hostname## How often should node cleanup checks run?cluster_formation.node_cleanup.interval = 30## Set to false if automatic removal of unknown/absent nodes## is desired. This can be dangerous, see##  * https://www.rabbitmq.com/cluster-formation.html#node-health-checks-and-cleanup##  * https://groups.google.com/forum/#!msg/rabbitmq-users/wuOfzEywHXo/k8z_HWIkBgAJcluster_formation.node_cleanup.only_log_warning = truecluster_partition_handling = autoheal## See https://www.rabbitmq.com/ha.html#master-migration-data-localityqueue_master_locator=min-masters## This is just an example.## This enables remote access for the default user with well known credentials.## Consider deleting the default user and creating a separate user with a set of generated## credentials instead.## Learn more at https://www.rabbitmq.com/access-control.html#loopback-usersloopback_users.guest = false

rabc

[root@k8s-master01 rabbitmq]# cat rbac.yaml
---
apiVersion: v1
kind: ServiceAccount
metadata:name: rabbitmqnamespace: rabbitmq
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:name: rabbitmq-peer-discovery-rbac
#  namespace: test-rabbitmq
rules:
- apiGroups: [""]resources: ["endpoints"]verbs: ["get"]
- apiGroups: [""]resources: ["events"]verbs: ["create"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:name: rabbitmq-peer-discovery-rbacnamespace: rabbitmq
subjects:
- kind: ServiceAccountname: rabbitmq
roleRef:apiGroup: rbac.authorization.k8s.iokind: Rolename: rabbitmq-peer-discovery-rbac

service

[root@k8s-master01 rabbitmq]# cat service.yaml
kind: Service
apiVersion: v1
metadata:namespace: rabbitmqname: rabbitmqlabels:app: rabbitmqtype: LoadBalancer
spec:type: NodePortports:- name: httpprotocol: TCPport: 15672targetPort: 15672nodePort: 31672- name: amqpprotocol: TCPport: 5672targetPort: 5672nodePort: 30672selector:app: rabbitmq

PV

[root@k8s-master01 rabbitmq]# cat pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:name: nfs
spec:storageClassName: rabbitmqcapacity:storage: 10GiaccessModes:- ReadWriteManynfs:server: 192.168.245.129        # 改成自己的NFS地址path: "/data"           # nfs

PVC

[root@k8s-master01 rabbitmq]# cat pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: nfs
spec:accessModes:- ReadWriteManystorageClassName: rabbitmqresources:requests:storage: 2Gi

statefulset

[root@k8s-master01 rabbitmq]# cat statefulset.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:name: rabbitmqnamespace: rabbitmq
spec:serviceName: rabbitmqreplicas: 3selector:matchLabels:app: rabbitmqtemplate:metadata:labels:app: rabbitmqspec:serviceAccountName: rabbitmqterminationGracePeriodSeconds: 10containers:- name: rabbitmq-k8simage: rabbitmq:3.8volumeMounts:- name: config-volumemountPath: /etc/rabbitmq- name: nfs-volumemountPath: /var/lib/rabbitmq/ports:- name: httpprotocol: TCPcontainerPort: 15672- name: amqpprotocol: TCPcontainerPort: 5672livenessProbe:exec:command: ["rabbitmq-diagnostics", "status"]initialDelaySeconds: 60periodSeconds: 60timeoutSeconds: 15readinessProbe:exec:command: ["rabbitmq-diagnostics", "ping"]initialDelaySeconds: 20periodSeconds: 60timeoutSeconds: 10imagePullPolicy: Alwaysenv:- name: MY_POD_NAMEvalueFrom:fieldRef:apiVersion: v1fieldPath: metadata.name- name: MY_POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespace- name: RABBITMQ_USE_LONGNAMEvalue: "true"- name: K8S_SERVICE_NAMEvalue: rabbitmq- name: RABBITMQ_NODENAMEvalue: rabbit@$(MY_POD_NAME).$(K8S_SERVICE_NAME).$(MY_POD_NAMESPACE).svc.cluster.local- name: K8S_HOSTNAME_SUFFIXvalue: .$(K8S_SERVICE_NAME).$(MY_POD_NAMESPACE).svc.cluster.local- name: RABBITMQ_ERLANG_COOKIEvalue: "mycookie"volumes:- name: config-volumeconfigMap:name: rabbitmq-configitems:- key: rabbitmq.confpath: rabbitmq.conf- key: enabled_pluginspath: enabled_plugins- name: nfs-volumepersistentVolumeClaim:claimName: nfs

启动

kubectl apply -f *.yaml

页面访问15672端口,密码guest/guest

K8S 部署rabbitmq集群相关推荐

  1. docker 部署rabbitmq,k8s部署rabbitmq集群,跟踪和监控rabbitmq

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 rabbit原理和架构可以参考https://blog.csdn.net/luanpeng825485697/article/details/8208 ...

  2. k8s部署rabbitmq集群(使用statefulset部署)

    本例使用Storage Class(存储类)来作为集群数据的持久化后端,使用nfs作为后端存储. 1.创建namespace: # ns.yaml --- apiVersion: v1 kind: N ...

  3. 使用Docker部署RabbitMQ集群

    使用Docker部署RabbitMQ集群 概述 本文重点介绍的Docker的使用,以及如何部署RabbitMQ集群,最基础的Docker安装,本文不做过多的描述,读者可以自行度娘. Windows10 ...

  4. docker rabbitmq_Docker部署RabbitMQ集群

    安装rabbitmq 下载Docker镜像 docker pull rabbitmq:3.7.12-management 安装RabbitMQ mkdir rabbitmq # node1 172.1 ...

  5. 部署RabbitMQ集群

    RabbitMQ集群实操手册 实战案例--部署RabbitMQ集群 案例目标 了解RabbitMQ服务的安装与配置. 了解RabbitMQ集群的配置架构. 了解RabbitMQ集群的使用. 案例分析 ...

  6. k8s搭建 rabbitmq集群

    工具 版本 k8s 1.19 rabbitmq 3.7.8 rabbitmq镜像下载-CSDN mq镜像下载位置 链接:https://pan.baidu.com/s/1tJ1xxfA174Kjj4C ...

  7. kubernetes入门到精通(二):k8s部署Tomcat集群,基于NTFS协议的文件集群共享,Service提供负载均衡,端口转发工具Rinetd配置外部访问

    首先,配置 Docker 镜像加速服务 登录阿里云账号,进入控制台 -> 容器镜像服务 (不需要有阿里云的服务器,只要注册账号即可) 在两台 node 节点上配置好阿里云的镜像加速. 重启一下 ...

  8. k8s部署eureka集群

    在k8s集群中通过CICD进行部署Eureka集群 一.前言 普通后端如果想要同时起多个服务来进行负载均衡,可以通过部署Deployment并调整Pod的数量,然后交由Service来代理这些Pod, ...

  9. k8s部署redis集群

    K8S部署Redis Cluster集群 kubernetes部署单节点redis: https://www.cnblogs.com/zisefeizhu/p/14282299.html Redis ...

最新文章

  1. MegEngine基本概念
  2. android 读取asset下的文件注意事项
  3. Java获取当前类名的两种方法
  4. maven 错误处理
  5. POJ 2075 Tangled in Cables
  6. [电子商务网站设计] 之 My Space
  7. C++自定义直方图统计
  8. 一个长方体玻璃容器从里面量长宽_在玻璃鱼缸里用微型观叶植物布置景观,比盆景还要迷人...
  9. Javascript -- 精通String
  10. 济南大学转专业计算机面试难吗,我校2016-2017学年学生转专业工作结束
  11. rabbitMQ windows 下安装
  12. python 处理xls遇到的坑
  13. 坐标正反算例题_坐标正算公式例题
  14. IDEA开发项目必备的几个查找功能的使用、查找整个项目文件内容(Find in Path)、查找某个文件名
  15. 2022秋招笔试备考合集——银行篇(下)|智测优聘出品
  16. Ubuntu 安装及基本配置(显示、镜像源、网络配置)
  17. 『实践』VirtualBox 5.1.18+Centos 6.8+hadoop 2.7.3搭建hadoop完全分布式集群及基于HDFS的网盘实现...
  18. 服务器ie安全增强关闭还是显示,如何关掉ie浏览器的增强安全配置
  19. Kruskal 重构树
  20. Zotero6.0时代来临!新的文献阅读生态

热门文章

  1. 服务器块格式不正确的是什么,c#-服务器标签格式不正确.(databinder.eval)
  2. 华为大数据中心山西_任正非:华为愿与山西一道建立“煤矿人工智能创新实验室”...
  3. antd tree搜索并定位_KD-Tree原理详解
  4. java中程序跳转_java程序中先后台交互的两种实现方式以及页面之间的跳转
  5. dev控件调用html页面,Chrome开发工具 扩展 DevTools
  6. mysql _ 通配符_mysql查询中通配符的使用
  7. 突发!美国国会发函要求 Facebook 立即停止 Libra 项目
  8. NodeJs开发框架fortjs
  9. TensorFlow简介:向量对象
  10. java跨库调用存储_java-调用spring数据其余存储库方法不会返回...