Обновление состояния MongoDB - PullRequest
0 голосов
/ 05 июня 2019

Я нахожусь в процессе развертывания mongodb ReplicaSet на GKE.

Мое развертывание работает, однако я хотел бы включить аутентификацию на Mongo.

У меня естьподключен к моему модулю

kubectl exec -it {pod_name} mongo admin

Создан пользователь Admin, а также пользователь моей базы данных.Тогда я думал, что смогу обновить mongo-statefulset.yaml с флагом --auth и применить обновленный yaml.

Что-то вроде

.....
spec:
      terminationGracePeriodSeconds: 10
      containers:
        - name: mongod-container
          image: mongo:3.6
          command:
            - mongod
            - "--bind_ip"
            - "0.0.0.0"
            - "--replSet"
            - rs0
            - "--smallfiles"
            - "--noprealloc"
            - "--auth"
          ports:
            - containerPort: 27017
          volumeMounts:
            - name: mongo-persistent-storage
              mountPath: /data/db
.....

Но при запуске kubectl apply -f mongo-statefulset.yaml просто получается

service / mongo-svc без изменений

statefulset.apps / mongo сконфигурирован

Должен ли я перезапустить свои модули для того, чтобы это теперь вступило в силу?

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

Попробуйте сделать скользящее обновление : Стратегия обновления RollingUpdate будет обновлять все модули в StatefulSet в обратном порядковом порядке при соблюдении гарантий StatefulSet.

Исправьте веб-набор StatefulSet для применения стратегии обновления RollingUpdate.

$ kubectl patch statefulset your_statefulset_name -p '{"spec":{...}}}'

Не забудьте добавить метку env с учетными данными, которые вы создали на вашем модуле, например:

      env:
        - name: MONGODB_USERNAME
          value: admin
        - name: MONGODB_PASSWORD
          value: password

Надеюсь, это поможет.

0 голосов
/ 05 июня 2019

Вы можете попробовать

kubectl delete -f mongo-statefulset.yaml && kubectl apply -f mongo-statefulset.yaml
...