kubernetes安装rabbitmq集群
1.准备K8S环境
2.下载基础镜像,需要安装两种插件:autocluster、rabbitmq_management
方法一:
下载已有插件镜像
[root@localhost ~]#docker pull registry.cn-hangzhou.aliyuncs.com/wise2c/kubernetes-rabbitmq-autocluster
下面是自定义的Dockerfile
FROM registry.cn-hangzhou.aliyuncs.com/wise2c/kubernetes-rabbitmq-autocluster:latest RUN rabbitmq-plugins enable --offline rabbitmq_management
构建新镜像(在当前目录新建Dockerfile)
docker build -t . rabbitmq:new
方法二:
下载原始镜像
下面是自定义的Dockerfile(需要下载autocluster-0.6.1.ez插件)
FROM rabbitmq:3.6. ENV RABBITMQ_USE_LONGNAME=true \
AUTOCLUSTER_LOG_LEVEL=debug \
AUTOCLUSTER_CLEANUP=true \
CLEANUP_INTERVAL= \
CLEANUP_WARN_ONLY=false \
AUTOCLUSTER_TYPE=k8s \
LANG=en_US.UTF- ADD plugins/*.ez /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.8/plugins/ RUN rabbitmq-plugins enable --offline autocluster
RUN rabbitmq-plugins enable --offline rabbitmq_management
构建新镜像(在当前目录新建Dockerfile)
docker build -t . rabbitmq:new
3.kubernetes配置文件(serviceAccount.yaml、service.yaml、deployment.yaml)
创建serviceAccount,这样autocluster可以通过serviceAccount去访问rabbitmq-service的endpoints
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: rabbitmq
namespace: default
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: endpoint-reader
namespace: default
rules:
- apiGroups: [""]
resources: ["endpoints"]
verbs: ["get"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: endpoint-reader
namespace: default
subjects:
- kind: ServiceAccount
name: rabbitmq
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: endpoint-reader
创建service.yaml
---
apiVersion: v1
kind: Service
metadata:
labels:
app: rabbitmq
name: rabbitmq
spec:
ports:
- port:
name: port-
targetPort:
protocol: TCP
nodePort:
- port:
name: port-
targetPort:
protocol: TCP
- port:
name: port-
targetPort:
protocol: TCP
- port:
targetPort:
nodePort:
name: port-
protocol: TCP
- port:
name: port-
targetPort:
protocol: TCP
type: NodePort
selector:
app: rabbitmq
创建deployment.yaml,在此之前需要先生成cookie文件
[root@localhost ~]echo $(openssl rand -base64 ) > erlang.cookie
[root@localhost ~]kubectl -n cat create secret generic erlang.cookie --from-file=erlang.cookie
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: rabbitmq
spec:
replicas:
template:
metadata:
labels:
app: rabbitmq
spec:
containers:
- name: rabbitmq
image: rabbitmq:new
ports:
- containerPort:
name: port-
- containerPort:
name: port-
- containerPort:
name: port-
- containerPort:
name: port-
- containerPort:
name: port-
env:
- name: HOSTNAME
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: MY_POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: AUTOCLUSTER_CLEANUP
value: "true"
- name: RABBITMQ_USE_LONGNAME
value: "true"
- name: AUTOCLUSTER_LOG_LEVEL
value: "debug"
- name: CLEANUP_INTERVAL
value: ""
- name: CLEANUP_WARN_ONLY
value: "false"
- name: AUTOCLUSTER_TYPE
value: "k8s"
- name: LANG
value: "en_US.UTF-8"
- name: RABBITMQ_ERLANG_COOKIE
valueFrom:
secretKeyRef:
name: erlang.cookie
key: erlang.cookie
[root@localhost ~]# kubectl create -f serviceAccount.yaml
[root@localhost ~]# kubectl create -f service.yaml
[root@localhost ~]# kubectl create -f deployment.yaml
启动后出现报错:
若出现节点无法加入集群的问题

20181102更新
部署单节点rabbitmq,使用自带管理界面插件的镜像,在docker hub上搜索rabbitmq,下载镜像docker pull rabbitmq:3.6-management
kubernetes安装rabbitmq集群的更多相关文章
- k8s中安装rabbitmq集群
官方文档地址:https://www.rabbitmq.com/kubernetes/operator/quickstart-operator.html 要求 1.k8s版本要1.18及其以上 2.能 ...
- docker-compose安装rabbitmq集群(主从集群---》镜像集群)
docker-compose安装rabbitmq集群(主从集群--->镜像集群) yls 2020/5/11 创建docker-compose.yml 文件 version: '3' servi ...
- kubernets安装rabbitmq集群.
RabbitMQ集群的两种模式 1)普通模式:默认的集群模式,队列消息只存在单个节点上 2)镜像模式:队列为镜像队列,队列消息存在每个节点上 配置同步: 配置同步: 1.Ha mode 同步模式,以下 ...
- CentOS7安装RabbitMQ集群
实验环境 RabbitMQ 集群 server1.example.com IP: 10.10.10.11 Node: diskserver2.example.com IP: 10.1 ...
- 集群架构和CentOS7安装RabbitMQ集群(单机版)
1. 集群架构 1.1 四种内部元数据 队列元数据.交换器元数据.绑定元数据.vhost元数据. 单一节点中:会将数据存储到内存,同时将持久化元数据保存到硬盘. 集群中: 存储到磁盘上.内存中. 集群 ...
- CentOS7安装rabbitmq集群(二进制)
一.RabbiMQ简介 RabbiMQ是用Erang开发的,集群非常方便,因为Erlang天生就是一门分布式语言,但其本身并不支持负载均衡. RabbiMQ模式 RabbitMQ模式大概分为以下三种: ...
- kubernetes实战(四):k8s持久化安装rabbitmq集群
1.下载文件 https://github.com/dotbalo/k8s/ 2.创建namespace kubectl create namespace public-service 如果不使用pu ...
- Windows安装RabbitMQ集群的几个注意点
记录一下RabbitMQ在windows平台下安装的几个注意点- -,好记性不如烂笔头 安装过程与Linux安装一致,教程参照官网集群配置:此处只列举出几个注意点: 1. erlang的版本需要一致, ...
- 安装rabbitmq集群
一.安装 erlang.rabbitmq 在10.0.0.45.10.0.0.57.10.0.0.58三个节点上安装,然后开启 RabbitMQ 监控插件 以下在root用户操作 1./etc/hos ...
随机推荐
- 黑马旅游网 解析url查询字符串
function getUrlParam(name) { let reg = new RegExp("(^|&)" + name + "=([^&]*)( ...
- mongodb-win
http://www.cnblogs.com/clsn/p/8214194.html#auto_id_22 Mongodb的作用: 用于对象及JSON数据的存储,它存的都是对象比如字典, 数据库,无论 ...
- ==和equals方法
Java程序中测试两个变量时否相等有两种方法: == 和 equals. ==判断 当使用==来判断两个变量是否相等时,如果两个变量是基本类型变量,且都是数字类型(不一定要求数据类型严格相同),则只要 ...
- docker镜像创建
1. 首选要创建一个Dockerfile文件,内容如下: FROM alpine:latest MAINTAINER lobin <lobin.hotmail.com> RUN apk ...
- Python模块介绍
模块 1.模块定义 用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质上就是.py结尾python文件 分类:内置模块(又称标准库)执行 help('modules')查看所 ...
- 2017swpu-ctf总结
2017swpu-ctf总结 今年是我第一次出题感受很多,就分析几道我印象最深刻的题吧 你能进入后台吗? 这道题主要是考察php_screw还有md5加密开启true过后的注入 phpscrew加密在 ...
- Codeforces Round #563 (Div. 2) C. Ehab and a Special Coloring Problem
链接:https://codeforces.com/contest/1174/problem/C 题意: You're given an integer nn. For every integer i ...
- BZOJ-3555:企鹅QQ(字符串哈希)
PenguinQQ是中国最大.最具影响力的SNS(Social Networking Services)网站,以实名制为基础,为用户提供日志.群.即时通讯.相册.集市等丰富强大的互联网功能体验,满足用 ...
- Netty(3)Time protocol
本节介绍TIME协议.该协议与前边的discard协议和echo协议的不同点在于:1.服务端主动发送消息给到客户端,所以需要channelActive()方法.2.发送的消息是4个字节的int3.不接 ...
- 安装Jaspersoft Studio
下载位置:http://community.jaspersoft.com/project/jaspersoft-studio/releases.