首页 > 解决方案 > 具有复制功能的两台服务器上的 Kubernetes Cassandra 负载平衡

问题描述

我有两个 ubuntu 服务器(在同一个网络上),我需要在它们两个上都在 Kubernetes 上安装 Cassandra。(每个节点 4 个)谁能帮我解决这个问题。

这是我的 cluster.yaml 文件(在服务器 1 上)

不知道如何配置服务器 2。

以下是设置的方式:

服务器数量:2(Ubuntu OS)每台服务器的节点数量:4

kind: StatefulSet
metadata:
  name: cassandra
  namespace: cassandra
  labels:
    app: cassandra
spec:
  serviceName: cassandra
  replicas: 4
  selector:
    matchLabels:
      app: cassandra
  template:
    metadata:
      labels:
        app: cassandra
    spec:
      terminationGracePeriodSeconds: 1800
      containers:
      - name: cassandra
        image: datastax/dse-server:6.7.7
        imagePullPolicy: Always
        ports:
        - containerPort: 7000
          name: intra-node
        - containerPort: 7001
          name: tls-intra-node
        - containerPort: 7199
          name: jmx
        - containerPort: 9042
          name: cql
        resources:
          limits:
            cpu: "8000m"
            memory: 16Gi
          requests:
            cpu: "8000m"
            memory: 16Gi
        securityContext:
          capabilities:
            add:
              - IPC_LOCK
        lifecycle:
          preStop:
            exec:
              command:
              - /bin/sh
              - -c
              - nodetool drain

        env:
          - name: MAX_HEAP_SIZE
            value: 8G
          - name: HEAP_NEWSIZE
            value: 8G
          - name: SEEDS
            value: "10.32.0.4,10.32.0.5"
          - name: CLUSTER_NAME
            value: "HEROIC Cluster"
          - name: DC
            value: "dc1"
          - name: RACK
            value: "rack1"
          - name: NUM_TOKENS
            value: "128"
          - name: DS_LICENSE
            value: "accept"
          - name: POD_IP
            valueFrom:
              fieldRef:
                fieldPath: status.podIP
        readinessProbe:
          exec:
            command:
            - /bin/bash
            - -c
            - "cp /ready_probe.sh /tmp/ready_probe.sh && chmod 777 /tmp/ready_probe.sh && /tmp/ready_probe.sh"
          initialDelaySeconds: 20
          timeoutSeconds: 5                
        volumeMounts:
        - name: cassandra-data
          mountPath: /var/lib/cassandra
          subPath: cassandra
        - name: cassandra-data
          mountPath: /var/lib/spark
          subPath: spark
        - name: cassandra-data
          mountPath: /var/lib/dsefs
          subPath: dsefs
        - name: cassandra-data
          mountPath: /var/log/cassandra
          subPath: log-cassandra
        - name: cassandra-data
          mountPath: /var/log/spark
          subPath: log-spark
        - name: cassandra-data
          mountPath: /config
          subPath: config
        - name: cassandra-data
          mountPath: /var/lib/opscenter
          subPath: opscenter
        - name: cassandra-data
          mountPath: /var/lib/datastax-studio
          subPath: datastax-studio
        - name: script
          mountPath: /ready_probe.sh
          subPath: ready.sh
      volumes:
      - name: script
        configMap:
          name: script
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: kubernetes.io/hostname
                operator: In
                values:
                - ubuntuserver          
  volumeClaimTemplates:
  - metadata:
      name: cassandra-data
    spec:
      accessModes: [ "ReadWriteOnce" ]
      storageClassName: local-storage
      resources:
        requests:
          storage: 2Gi

谁能帮我解决这个问题。

标签: kubernetescassandraload-balancingkubectl

解决方案


推荐阅读