kubernetes实战(四):k8s持久化安装rabbitmq集群

1、下载文件

https://github.com/dotbalo/k8s/

 

2、创建namespace

kubectl create namespace public-service

  如果不使用public-service,需要更改所有yaml文件的public-service为你namespace。

sed -i "s#public-service#YOUR_NAMESPACE#g" *.yaml

 

3、创建持久化pv

  此处采用的是静态PV方式,后端使用的是NFS,为了方便扩展可以使用动态PV较好。

[root@nfs rabbitmq-cluster-1]# cat /etc/exports
/k8s/rmq-cluster/rabbitmq-cluster-1/ *(rw,sync,no_subtree_check,no_root_squash)
/k8s/rmq-cluster/rabbitmq-cluster-2/ *(rw,sync,no_subtree_check,no_root_squash)
/k8s/rmq-cluster/rabbitmq-cluster-3/ *(rw,sync,no_subtree_check,no_root_squash)
[root@k8s-master01 rabbitmq-cluster]# pwd
/root/efk/rabbitmq-cluster
[root@k8s-master01 rabbitmq-cluster]# ls
rabbitmq-cluster-ss.yaml  rabbitmq-pv.yaml    rabbitmq-secret.yaml           rabbitmq-service-lb.yaml
rabbitmq-configmap.yaml   rabbitmq-rbac.yaml  rabbitmq-service-cluster.yaml  README.md

  创建集群

[root@k8s-master01 rabbitmq-cluster]# kubectl apply -f .

 

4、查看

  pods、pv、pvc

[root@k8s-master01 rabbitmq-cluster]# kubectl get pods -n public-service
NAME            READY     STATUS    RESTARTS   AGE
rmq-cluster-0   1/1       Running   0          40m
rmq-cluster-1   1/1       Running   0          39m
rmq-cluster-2   1/1       Running   0          39m
[root@k8s-master01 rabbitmq-cluster]# kubectl get pv -n public-service
NAME       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS    CLAIM                                           STORAGECLASS        REASON    AGE
pv-rmq-1   4Gi        RWX            Recycle          Bound     public-service/rabbitmq-storage-rmq-cluster-2   rmq-storage-class             49m
pv-rmq-2   4Gi        RWX            Recycle          Bound     public-service/rabbitmq-storage-rmq-cluster-1   rmq-storage-class             49m
pv-rmq-3   4Gi        RWX            Recycle          Bound     public-service/rabbitmq-storage-rmq-cluster-0   rmq-storage-class             49m
[root@k8s-master01 rabbitmq-cluster]# kubectl get pvc -n public-service
NAME                             STATUS    VOLUME     CAPACITY   ACCESS MODES   STORAGECLASS        AGE
rabbitmq-storage-rmq-cluster-0   Bound     pv-rmq-3   4Gi        RWX            rmq-storage-class   48m
rabbitmq-storage-rmq-cluster-1   Bound     pv-rmq-2   4Gi        RWX            rmq-storage-class   48m
rabbitmq-storage-rmq-cluster-2   Bound     pv-rmq-1   4Gi        RWX            rmq-storage-class   48m
[root@k8s-master01 rabbitmq-cluster]#

  services,此时使用的NodePort方式,可改为traefik模式

[root@k8s-master01 rabbitmq-cluster]# kubectl get services -n public-service
NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                          AGE
rmq-cluster            ClusterIP   None            <none>        5672/TCP                         1h
rmq-cluster-balancer   NodePort    10.107.221.85   <none>        15672:30051/TCP,5672:31892/TCP   1h

 

5、访问测试

  通过NodePort的端口

  账号密码:guest

 

6、存在问题

  上述yaml中有个secret

[root@k8s-master01 rabbitmq-cluster]# cat rabbitmq-secret.yaml 
kind: Secret
apiVersion: v1
metadata:
  name: rmq-cluster-secret
  namespace: public-service
stringData:
  cookie: ERLANG_COOKIE
  password: RABBITMQ_PASS
  url: amqp://RABBITMQ_USER:RABBITMQ_PASS@rmq-cluster-balancer
  username: RABBITMQ_USER

  定义了username和password,然后在rabbitmq-cluster-ss.yaml引用作为默认账号密码,而且在configmap中也禁用了guest,但是没有生效。此问题待解决。

 

赞助作者:

  

转载于:https://www.cnblogs.com/dukuan/p/9897443.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes安装RabbitMQ可以按照以下步骤进行操作: 1. 首先,创建一个命名空间(Namespace)用于部署RabbitMQ。可以使用以下命令创建一个名为rabbit-mq的命名空间: ``` kubectl create namespace rabbit-mq ``` [2] 2. 接下来,创建一个ServiceAccount以及相关的role和rolebinding。可以创建一个名为rabbitmq的ServiceAccount,并为其分配访问endpoints资源的权限。可以使用以下命令创建相关的rbac配置文件: ``` apiVersion: v1 kind: ServiceAccount metadata: name: rabbitmq namespace: rabbit-mq --- kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: endpoint-reader namespace: rabbit-mq rules: - apiGroups: [""] resources: ["endpoints"] verbs: ["get"] --- kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: endpoint-reader namespace: rabbit-mq subjects: - kind: ServiceAccount name: rabbitmq roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: endpoint-reader ``` 可以使用以下命令应用rbac配置文件: ``` kubectl apply -f rabbitmq.rbac.yaml ``` [3] 3. 最后,使用RabbitMQ官方提供的镜像包中的rabbitmq-peer-discovery-k8s工具来自动发现节点并加入集群。可以使用以下命令创建一个名为rabbit-mq的RabbitMQ实例: ``` apiVersion: v1 kind: Pod metadata: name: rabbit-mq namespace: rabbit-mq spec: containers: - name: rabbitmq image: rabbitmq:latest ports: - containerPort: 5672 - containerPort: 15672 env: - name: RABBITMQ_ERLANG_COOKIE value: "secretcookie" - name: RABBITMQ_USE_LONGNAME value: "true" - name: RABBITMQ_NODENAME value: "rabbit@rabbit-mq" - name: RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS value: "-rabbitmq_peer_discovery_k8s.addresses=rabbit-mq" ``` 可以使用以下命令创建Pod: ``` kubectl apply -f rabbit-mq.yaml ``` [1] 请注意,以上步骤仅提供了一个基本的安装示例,具体的配置可能会因实际需求而有所不同。建议根据实际情况进行相应的调整和配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值