# k8s-rabbitmq
**Repository Path**: bertxue/k8s-rabbitmq
## Basic Information
- **Project Name**: k8s-rabbitmq
- **Description**: rabbitmq-k8s 部署方案
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2022-02-18
- **Last Updated**: 2022-02-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# rabbitmq k8s集群安装
## 部署时注意 `rabbitmq.yaml` 中的命名空间 `namespace`
### 文件说明
|文件名称|说明|
|-|-|
|rabbitmq|镜像目录文件|
|docker-compose.yaml|本地编排文件(未使用)|
|rabbitmq.yaml|k8s部署文件|
### rabbitmq连接池组件
[rabbit-pool=>](https://gitee.com/tym_hmm/rabbitmq-pool-go)
### 准备工作
`远程镜像仓库`: 案例中使用的是阿里云的镜像仓库.
### 镜像创建
1. 使用docker打包dockerfile 创建镜像. 进入rabbitmq镜像目录
```
docker build . -t 〈镜像名称〉:<版本>
```
2. 登录镜像仓库并打包镜像
> 输入密码时需在镜像中设置访问密码
```
# 具体见阿里云镜像push
$ docker login --username=<阿里云账号> xxx-registry.cn-shenzhen.cr.aliyuncs.com
$ docker tag [ImageId] xxx-registry.cn-shenzhen.cr.aliyuncs.com/rabbitmq:[镜像版本号]
$ docker push xxx-registry.cn-shenzhen.cr.aliyuncs.com/rabbitmq:[镜像版本号]
```
3. 使用yaml创建pod
> 创建时会提示无法绑定
4. 配置阿里云nas
> 1.进入集群管理,并进入"存储管理"
> 2.手动创建存储类型为`nas`,选择创建nas
> 3.手动创建存储券,并选择nas,若没有挂载点需创建需创建阿里云 nas
> 4.手动创建存储声明并选择nas
> 5.修改部署yaml
```
volumes:
- name: volume-rabbimqnas
persistentVolumeClaim:
claimName: <存储声明名称>
```
5. 若使用阿里云docker仓库需配置免密
> 1) 点击集群菜单 "配置管理"=>"配置项"
> 2) 选择命名空间 "所有命名空间"
> 3) 搜索 "acr" 查找 "acr-configuration"
> 4) 编辑 "acr-configuration"并修改 "acr-registry-info"项 [阿里云文档=>](https://help.aliyun.com/document_detail/159750.html?spm=5176.10695662.1996646101.searchclickresult.dede56d498IZvB#title-6ea-jj9-dj4)
>
>```
>- instanceId: "cri-zsphy231y9h6cxxx" #docker镜像实例
> regionId: "cn-shenzhen" #仓库所在区域
> domains: "xxx-registry.cn-shenzhen.cr.aliyuncs.com" #仓库地址
>```
> 5) 若还存在无法拉取镜像,进入pod详情, 点击"编辑", 在“镜像tag”单击"设设置镜像密钥"
> * 选择已有密钥
6. 修改授权名称, rabbitmq管理面板账号密码
```
#首先需要生成一个erlang.cookie的文件:
#echo $(openssl rand -base64 32) > erlang.cookie
#然后将该文件的内容复制下来,编写一个secret对象yaml:
apiVersion: v1
kind: Secret
metadata:
name: devsecret
namespace: zaibei
type: Opaque
data:
rabbitDefaulUser: "cmFiYml0dXNlcg==" #rabbituser
rabbitDefaultPass: "cmFiYml0cGFzcw==" #rabbitpass
erlang.cookie: "SjNBT1oyMTgwVjdKNVBNMjgycUhIaW5pZ2ZWUjV5eW5wUGFuMHkwcTRWMD0="
```
7. 设置对外访问(此为通过阿里云pod面板设置)
> 1) 进入pod详情,在页面tab选择"访问方式"
> 2) 点击"创建",如下图配置
> 
> 3) 点击"创建"
> 4) 等待几秒后创建成功
> 5) 浏览器输入http://xxxxx:32001 进入控制面板
> 6) 账号: rabbituser 密码: rabbitpass
8. 注意
> 1) 因k8s中为集群配置,单容器创建时会出现两次错误(主节点选举错误), 重启两次后正常。