0

レプリカを作成して、既存の mongodb を高可用性にしようとしています。それを実行するために、ここにリンクの説明を入力することを参照しました

以下は私のステートフルセットです

apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: skeleton-mongodb
spec:
  serviceName: skeleton-mongodb
  replicas: 3
  selector:
    matchLabels:
      app: skeleton-mongodb
  template:
    metadata:
      labels:
        app: skeleton-mongodb
    spec:
      containers:
        - name: mongodb
          image: mongo:4
          resources:
            requests:
              memory: 250Mi
              cpu: 100m
            limits:
              memory: 500Mi
          ports:
            - containerPort: 27017
              name: mongo
          args:
            - "--bind_ip_all"
            - "--replSet"
            - rs0
          volumeMounts:
            - name: skeleton-mongodb-data
              mountPath: /data/db
            - name: skeleton-mongodb-init
              mountPath: /docker-entrypoint-initdb.d
          env:
            - name: MONGO_INITDB_ROOT_USERNAME
              valueFrom:
                configMapKeyRef:
                  name: skeleton
                  key: mongo_root-username
            - name: MONGO_INITDB_ROOT_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: skeleton
                  key: mongodb_root-password
            - name: MONGO_INITDB_DATABASE
              valueFrom:
                configMapKeyRef:
                  name: skeleton
                  key: mongo_db
            - name: MONGO_USERNAME
              valueFrom:
                configMapKeyRef:
                  name: skeleton
                  key: mongo_username
            - name: MONGO_USER_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: skeleton
                  key: mongodb_user-password
        - name: mongo-sidecar
          image: cvallance/mongo-k8s-sidecar
          env:
            - name: MONGO_SIDECAR_POD_LABELS
              value: "app=skeleton-mongodb"
            - name: MONGODB_DATABASE
              valueFrom:
                configMapKeyRef:
                  name: skeleton
                  key: mongo_db
            - name: MONGODB_USERNAME
              valueFrom:
                configMapKeyRef:
                  name: skeleton
                  key: mongo_username
            - name: MONGODB_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: skeleton
                  key: mongodb_user-password
      volumes:
      - name: skeleton-mongodb-init
        configMap:
          name: common-mongodb-init
  volumeClaimTemplates:
    - metadata:
        name: skeleton-mongodb-data
      spec:
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
            storage: 10Gi
        storageClassName: managed-premium

マスターであるポッドを見つけようとすると、マスターとしてポッドを見つけることができません。

for ((i = 0; i < 3; ++i)); 
do 
   kubectl exec --namespace default skeleton-mongodb-$i -- sh -c 'mongo --eval="printjson(rs.isMaster())"'; 
done

3つのポッドすべてを取得しています

{
        "ismaster" : false,
        "secondary" : false,
        "info" : "Does not have a valid replica set config",
        "isreplicaset" : true,
        ....
        "readOnly" : false,
        "ok" : 1
}

何か足りないかどうかわからない

4

1 に答える 1