K8s+Rabbitmq 集群部署

# 本地PV创建
apiVersion: v1
kind: PersistentVolume
metadata:
  name: rabbitmq
  labels:
    pv: rabbitmq
spec:
  capacity:
    storage: 1Gi
  accessModes:
  - ReadWriteMany
  nfs: 
    path: /nfs
    server: 192.168.1.178
---

#创建声明PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: dev-rabbitmq-volume
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
  selector:
    matchLabels:
      pv: rabbitmq
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: rabbitmq
---

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
  name: rabbitmq
rules:
- apiGroups:
  - ""
  resources:
  - endpoints
  verbs:
  - get
---

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
  name: rabbitmq
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: rabbitmq
subjects:
- kind: ServiceAccount
  name: rabbitmq
---
apiVersion: v1
kind: Service
metadata:
  name: rabbitmq-management
  labels:
    app: rabbitmq
spec:
  ports:
  - port: 15672
    name: http
    protocol: TCP
    nodePort: 32001
  - port: 5672
    name: amqp
    protocol: TCP
    nodePort: 32002
  - port: 25672
    name: clustering
    protocol: TCP 
  selector:
    app: rabbitmq
  type: NodePort
---
apiVersion: v1
kind: Service
metadata:
  name: rabbitmq
  labels:
    app: rabbitmq
spec:
  clusterIP: None
  ports:
  - port: 5672
    name: amqp
  selector:
    app: rabbitmq
---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: rabbitmq
spec:
  serviceName: rabbitmq
  replicas: 3
  template:
    metadata:
      labels:
        app: rabbitmq
    spec:
      serviceAccountName: rabbitmq
      imagePullSecrets:
      - name: regsecret
      containers:
      - name: rabbitmq
        image: registry.cn-shenzhen.aliyuncs.com/di_chen/kubernetes-rabbitmq-k8s:3.6.14 
        imagePullPolicy: IfNotPresent
        resources:
          requests:
            memory: "256Mi"
            cpu: "150m"
          limits:
            memory: "512Mi"
            cpu: "250m"
        ports:
        - containerPort: 5672
          name: amqp
        env: 
        - name: RABBITMQ_ERLANG_COOKIE
          value: UeCinu9N8FmL6Z/z8OOqGDU1MZT9VyRFHBDJJUdQrK4=
        - name: MY_POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: K8S_SERVICE_NAME
          value: "rabbitmq"
        - name: RABBITMQ_USE_LONGNAME
          value: "true"
        - name: RABBITMQ_NODENAME
          value: "rabbit@$(MY_POD_NAME).$(K8S_SERVICE_NAME)"
        - name: RABBITMQ_NODE_TYPE
          value: disc
        - name: AUTOCLUSTER_TYPE
          value: "k8s"
        - name: AUTOCLUSTER_DELAY
          value: "10"
        - name: AUTOCLUSTER_CLEANUP
          value: "true"
        - name: CLEANUP_WARN_ONLY
          value: "false"
        - name: K8S_ADDRESS_TYPE
          value: "hostname"
        - name: K8S_HOSTNAME_SUFFIX
          value: ".$(K8S_SERVICE_NAME)"
        volumeMounts:
        - name: rabbitmq-volume
          mountPath: /var/lib/rabbitmq
      volumes:
      - name: rabbitmq-volume
        persistentVolumeClaim:
          claimName: dev-rabbitmq-volume  

备注:rabbitmq 镜像 里的配置内容应该是调整过的 下载默认rabbitmq:management 无法集群

猜你喜欢

转载自www.cnblogs.com/whyong88/p/11912027.html