RabbitMQ Operator 部署


RabbitMQ Operator 部署

参考RabbitMQ官方Operator部署文档 https://www.rabbitmq.com/kubernetes/operator/install-operator.html

https://www.rabbitmq.com/kubernetes/operator/using-operator.html

  1. 下载并部署Operator,默认部署在rabbitmq-system命名空间,如果需要修改命名空间可以先下载yaml文件,修改命名空间后再执行部署命令
kubectl apply -f "https://github.com/rabbitmq/cluster-operator/releases/latest/download/cluster-operator.yml"
  1. 编写yaml文件准备创建RabbitmqCluster CRD资源实例,除了实例名字为必需项以外,其他配置均不是必须填写,可以按需求添加配置
apiVersion: rabbitmq.com/v1beta1
kind: RabbitmqCluster
metadata:
  labels:								#实例标签
    app: rabbitmq
  annotations:							#实例注释
    some: annotation
  name: rabbitmq-sample					#实例名字
spec:
  image: my-private-registry/rabbitmq:my-custom-tag			#实例使用镜像
  service:								#实例的service
    type: ClusterIP						#service类型
    annotations:						#service注释
      service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0
  persistence:							#配置持久化
    storage: 5Gi						#pvc大小
    storageClassName: longhorn			#使用的storageClass名字
  replicas: 3							#配置实例个数
  resources:							#配置实例资源限制
    limits:
      cpu: 800m
      memory: 1Gi
    requests:
      cpu: 200m
      memory: 512Mi
  affinity:								#配置实例亲和性
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: kubernetes.io/hostname
            operator: In
            values:
            - node-1
  tolerations:							#配置pod容忍
    - key: "dedicated"
      operator: "Equal"
      value: "rabbitmq"
      effect: "NoSchedule"
  rabbitmq:
    additionalConfig: |					#为实例添加自定义RabbitMQ配置
      cluster_formation.peer_discovery_backend = rabbit_peer_discovery_k8s
	  cluster_formation.k8s.host = kubernetes.default
	  cluster_formation.k8s.address_type = hostname
	  cluster_formation.node_cleanup.interval = 30
	  cluster_formation.node_cleanup.only_log_warning = true
	  cluster_partition_handling = pause_minority
	  queue_master_locator = min-masters
      channel_max = 1050
    envConfig: |						#为实例添加自定义环境变量
      RABBITMQ_DISTRIBUTION_BUFFER_SIZE=some_value
    additionalPlugins:					#为实例添加自定义插件
      - rabbitmq_top
      - rabbitmq_shovel
  terminationGracePeriodSeconds: 60		#配置实例终止宽限期
  override:								#配置实例覆盖默认配置
    service:
      spec:
        ports:
          - name: additional-port # adds an additional port on the service
            protocol: TCP
            port: 12345
    statefulSet:
      spec:
        template:
          spec:
            containers:
              - name: rabbitmq
                ports:
                  - containerPort: 12345 # opens an additional port on the rabbitmq server container
                    name: additional-port
                    protocol: TCP
  1. 创建/更新RabbitMQ实例
kubectl apply -f rabbitmq-sample.yml -n NAMESPACE
  1. 获取RabbitMQ实例默认管理员账号密码,通过15692端口登录RabbitMQ管理页面
kubectl -n NAMESPACE get secret rabbitmq-sample-default-user -o jsonpath="{.data.username}" | base64 --decode		#账号
kubectl -n NAMESPACE get secret rabbitmq-sample-default-user -o jsonpath="{.data.password}" | base64 --decode		#密码


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM