# 本地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 无法集群