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