Не удается пройти аутентификацию на скрытом элементе mongodb в kubernetes, «Ошибка аутентификации».

#mongodb #kubernetes

#mongodb #kubernetes

Вопрос:

Я выполнил настройку набора реплик mongodb на k8s с 4 участниками (1 основной, 1 вторичный, 1 арбитр, 1 скрытый для резервного копирования). Все участники должны включить аутентификацию, передав аргумент —auth.

Я также создаю cronjob, который отвечает за резервное копирование базы данных в s3.

Однако у меня возникла проблема при попытке подключиться к модулю резервного копирования из модуля cronjob.

Вот стек ошибок:

 connecting to: mongodb://mongodb-backup-0.mongodb-backup.default.svc.cluster.local:27017/?authSource=adminamp;gssapiServiceName=mongodb
2019-04-05T04:26:52.870 0000 E QUERY    [js] Error: Authentication failed. :
connect@src/mongo/shell/mongo.js:343:13
@(connect):2:6
exception: connect failed
  

Я разрешаю подключаться к экземпляру mongo backup из модуля резервного копирования:

 rs0:SECONDARY> db.auth("admin", "test")
1
  

Я также пытаюсь подключить модуль резервного копирования из дополнительного модуля. Он сообщает о той же ошибке.
Вот моя команда:

 mongo --authenticationDatabase admin --host mongodb-backup-0.mongodb-backup.default.svc.cluster.local --port 27017 -u "admin" -p "test"
  

Однако, если я подключаюсь к модулю резервного копирования без имени пользователя и пароля, я разрешаю подключиться к экземпляру резервной копии mongodb.

 mongo --authenticationDatabase admin --host mongodb-backup-0.mongodb-backup.default.svc.cluster.local --port 27017
  

Кто-нибудь может дать совет?

Ответ №1:

Я нашел ответ на эту проблему.

Я запускаю экземпляр mongod с --authenticationMechanism 'SCRAM-SHA-256' параметром. Итак, оболочке mongo требуется ввести --authenticationMechanism , чтобы разрешить вход в систему.