创建一个configMap

apiVersion: v1
data:
#在此添加需要开启的协议逗号隔开
  enabled_plugins: >-
    [rabbitmq_management,rabbitmq_peer_discovery_k8s,rabbitmq_mqtt,rabbitmq_web_mqtt].
kind: ConfigMap
  name: rabbit-plugins
  namespace: kube-public

也可以通过命令行创建

kubectl create cm rabbit-plugins --from-literal=enabled_plugins="[rabbitmq_management,rabbitmq_peer_discovery_k8s,rabbitmq_mqtt,rabbitmq_web_mqtt]." -n kube-public

创建Deployment的yaml文件

---
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: '4'
    k8s.kuboard.cn/displayName: rabbitmq
  creationTimestamp: '2021-05-14T04:20:25Z'
  generation: 4
  labels:
    k8s.kuboard.cn/layer: cloud
    k8s.kuboard.cn/name: rabbitmq
  name: rabbitmq
  namespace: kube-public
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s.kuboard.cn/layer: cloud
      k8s.kuboard.cn/name: rabbitmq
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      annotations:
        kubectl.kubernetes.io/restartedAt: '2021-05-14T13:57:55+08:00'
      creationTimestamp: null
      labels:
        k8s.kuboard.cn/layer: cloud
        k8s.kuboard.cn/name: rabbitmq
    spec:
      containers:
        - env:
            #登入用户名
            - name: RABBITMQ_DEFAULT_USER
              value: guest
              #登入密码
            - name: RABBITMQ_DEFAULT_PASS
              value: guest
            - name: TZ
              value: Asia/Shanghai
          image: '192.168.30.85:5000/kingc/rabbitmq:latest'
          imagePullPolicy: IfNotPresent
          name: rabbitmq
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          volumeMounts:
            - mountPath: /etc/rabbitmq/enabled_plugins
              name: volume-zaarr
              subPath: enabled_plugins
      dnsPolicy: ClusterFirst
      imagePullSecrets:
        - name: ipharbor
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
        - configMap:
            defaultMode: 420
            items:
              - key: enabled_plugins
                path: enabled_plugins
            name: rabbit-plugins
          name: volume-zaarr

---
apiVersion: v1
kind: Service
metadata:
  annotations: {}
  creationTimestamp: '2021-05-14T04:20:25Z'
  labels:
    k8s.kuboard.cn/layer: cloud
    k8s.kuboard.cn/name: rabbitmq
  name: rabbitmq
  namespace: kube-public
spec:
  ports:
    - name: rm8pab
      nodePort: 31807
      port: 80
      protocol: TCP
      targetPort: 15672
    - name: nesjns
      nodePort: 30376
      port: 5672
      protocol: TCP
      targetPort: 5672
    - name: hnnmtt
      nodePort: 31883
      port: 1883
      protocol: TCP
      targetPort: 1883
  selector:
    k8s.kuboard.cn/layer: cloud
    k8s.kuboard.cn/name: rabbitmq
  sessionAffinity: None
  type: NodePort

30376为java客户端连接端口
31807为web服务访问端口
31883为mqtt服务访问端口

点击阅读全文
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐