k8s部署rabbitmq-3.8.9群集 最新版稳定版
cat <<END>rbac.yamlkind: RoleapiVersion: rbac.authorization.k8s.io/v1metadata:name: rabbitmq-peer-discovery-rbacnamespace: testrules:- apiGroups:- ""resources:- endpointsverbs:- get- list- wa
·
cat <<END>rbac.yaml
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: rabbitmq-peer-discovery-rbac
namespace: test
rules:
- apiGroups:
- ""
resources:
- endpoints
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- events
verbs:
- create
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: rabbitmq-peer-discovery-rbac
namespace: test
subjects:
- kind: ServiceAccount
name: default
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: rabbitmq-peer-discovery-rbac
END
创建唯一erlang.cookie
echo $(openssl rand -base64 32) > erlang.cookie
kubectl create secret generic erlang.cookie --from-file=erlang.cookie -n test
再创建
tee mq-StatefulSet.yaml <<'-EOF'
apiVersion: apps/v1
kind: StatefulSet
metadata:
namespace: test
name: rabbitmq
annotations:
k8s.kuboard.cn/workload: rabbitmq
k8s.eip.work/ingress: 'false'
k8s.eip.work/service: NodePort
k8s.eip.work/workload: rabbitmq
k8s.kuboard.cn/service: NodePort
k8s.kuboard.cn/ingress: 'false'
labels:
k8s.eip.work/layer: ''
k8s.eip.work/name: rabbitmq
spec:
selector:
matchLabels:
k8s.eip.work/layer: ''
k8s.eip.work/name: rabbitmq
revisionHistoryLimit: 10
template:
metadata:
labels:
k8s.eip.work/layer: ''
k8s.eip.work/name: rabbitmq
spec:
securityContext:
seLinuxOptions: {}
imagePullSecrets: []
restartPolicy: Always
initContainers: []
containers:
- image: rabbitmq:3.8.9-management-alpine
imagePullPolicy: IfNotPresent
name: rabbitmq
volumeMounts:
- name: rabbitmq-data
mountPath: /var/lib/rabbitmq/mnesia
subPath: rabbitmq
- name: data-config
readOnly: true
mountPath: /etc/localtime
env:
- name: RABBITMQ_DEFAULT_USER
value: admin
- name: RABBITMQ_DEFAULT_PASS
value: jnThdLQ3MQ0D9Vvn
- name: RABBITMQ_ERLANG_COOKIE
valueFrom:
secretKeyRef:
name: erlang.cookie
key: erlang.cookie
- name: HOSTNAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: SERVICE_INTERNAL_NAME
value: rabbitmq
- name: RABBITMQ_USE_LONGNAME
value: 'true'
- name: RABBITMQ_NODENAME
value: >-
rabbit@$(HOSTNAME).$(SERVICE_INTERNAL_NAME).$(NAMESPACE).svc.cluster.local
lifecycle: {}
ports:
- name: amqp
containerPort: 5672
protocol: TCP
- name: http
containerPort: 15672
protocol: TCP
volumes:
- name: data-config
hostPath:
path: /etc/localtime
type: ''
dnsPolicy: ClusterFirst
dnsConfig: {}
terminationGracePeriodSeconds: 30
replicas: 3
volumeClaimTemplates:
- metadata:
name: rabbitmq-data
annotations:
volume.beta.kubernetes.io/storage-class: "managed-nfs-storage"
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 1Gi
serviceName: rabbitmq
EOF
cat <<END>svc
apiVersion: v1
kind: Service
metadata:
namespace: test
name: rabbitmq
annotations:
k8s.kuboard.cn/workload: rabbitmq
k8s.eip.work/workload: rabbitmq
labels:
k8s.eip.work/layer: ''
k8s.eip.work/name: rabbitmq
spec:
selector:
k8s.eip.work/layer: ''
k8s.eip.work/name: rabbitmq
type: NodePort
ports:
- port: 15672
targetPort: 15672
protocol: TCP
name: ewpqda
nodePort: 31672
- port: 5672
targetPort: 5672
protocol: TCP
name: ktfftz
nodePort: 30672
sessionAffinity: None
---
apiVersion: v1
kind: Service
metadata:
name: rabbitmqx
namespace: test
annotations:
k8s.kuboard.cn/workload: rabbitmq
k8s.eip.work/workload: rabbitmq
labels:
k8s.eip.work/layer: ''
k8s.eip.work/name: rabbitmq
spec:
selector:
k8s.eip.work/layer: ''
k8s.eip.work/name: rabbitmq
clusterIP: None
ports:
- port: 15672
name: cli
targetPort: 15672
- port: 5672
targetPort: 5672
name: serve
sessionAffinity: None
END
[root@c169 plugins]# kubectl get pods -n test | grep ra
rabbitmq-0 1/1 Running 0 100m
rabbitmq-1 1/1 Running 0 100m
rabbitmq-2 1/1 Running 0 100m
####
[root@c169 plugins]# kubectl exec -n test busybox -- nslookup rabbitmqx
Server: 10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local
Name: rabbitmqx
Address 1: 10.244.2.140 rabbitmq-0.rabbitmq.test.svc.cluster.local
Address 2: 10.244.2.141 rabbitmq-1.rabbitmq.test.svc.cluster.local
Address 3: 10.244.2.142 rabbitmq-2.rabbitmq.test.svc.cluster.local
开始手动加入集群
kubectl exec -it -n test rabbitmq-1 /bin/bash
rabbitmqctl --erlang-cookie $(cat $HOME/.erlang.cookie) stop_app
rabbitmqctl --erlang-cookie $(cat $HOME/.erlang.cookie) join_cluster rabbit@rabbitmq-0
rabbitmqctl --erlang-cookie $(cat $HOME/.erlang.cookie) start_app
#rabbitmq-2同上
kubectl exec -it -n test rabbitmq-0 /bin/bash
#查看集群状态
rabbitmqctl --erlang-cookie $(cat $HOME/.erlang.cookie) cluster_status
更多推荐
已为社区贡献82条内容
所有评论(0)