kubernetes實戰(四):k8s持久化安裝rabbitmq集羣

一、下載文件git

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

 

二、建立namespacegithub

kubectl create namespace public-service

  若是不使用public-service,須要更改全部yaml文件的public-service爲你namespace。後端

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

 

三、建立持久化pvapi

  此處採用的是靜態PV方式,後端使用的是NFS,爲了方便擴展可使用動態PV較好。cookie

[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

  建立集羣app

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

 

四、查看測試

  pods、pv、pvcurl

[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模式spa

[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

 

五、訪問測試code

  經過NodePort的端口

  帳號密碼:guest

 

六、存在問題

  上述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,可是沒有生效。此問題待解決。

 

贊助做者:

  

相關文章
相關標籤/搜索