команда завершена с ненулевым кодом завершения: Ошибка выполнения в Docker Container: 137 (Mongo Manager) - PullRequest
5 голосов
/ 25 апреля 2019

На основании этого руководства:

https://docs.opsmanager.mongodb.com/current/tutorial/install-simple-test-deployment/

Я пытаюсь запустить MongoDB и MongoDB Ops Manager в OpenShift. Мне удалось dockerize и MongoDB, и MongoDB Ops Manager, и MongoDB успешно прослушивает порт 27017 и все интерфейсы:

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

Мне также удалось получить MongoDB Ops Manager initialized , что означает, что следующие шаги выполнены успешно (включая подключение к моему экземпляру mongodb):

Generating new Ops Manager private key...
Starting pre-flight checks
Successfully finished pre-flight checks

Migrate Ops Manager data
   Running migrations...[  OK  ]
Start Ops Manager server
   Instance 0 starting..................[  OK  ]
tput: No value for $TERM and no -T specified
Starting pre-flight checks
Successfully finished pre-flight checks

Start Backup Daemon...[  OK  ]

но затем он неожиданно завершается с:

tail -f /opt/mongodb/mms/logs/mms0.log
...
2019-04-25T14:30:42.616+0000 [main] INFO  com.xgen.svc.mms.svc.ping.PingRequest$Observable [Observable.java.addObserver:19] - Registering observer: class com.xgen.svc.mms.svc.ping.TotalStorageCacheSvc
2019-04-25T14:30:42.618+0000 [main] INFO  com.xgen.svc.mms.svc.ping.PingRequest$Observable [Observable.java.addObserver:19] - Registering observer: class com.xgen.svc.mms.svc.ping.NDSAutoScalingIngestionSvc
2019-04-25T14:31:00.536+0000 [main] INFO  com.xgen.svc.core.ServerMain [ServerMain.java.setUpProxyServer:620] - Started queryable backup proxy server on port 25999
2019-04-25T14:31:00.537+0000 [ProxyServer-25999] INFO  backup.jobs.queryable.ProxyServer.25999 [ProxyServer.java.run:96] - Waiting for Proxy Server PEM File to be specified in the configuration
2019-04-25T14:31:00.559+0000 [main] INFO  com.xgen.svc.core.ServerMain [ServerMain.java.start:537] - Started mms at build ed64653d5f@on-prem-4.0 in: 51476 (ms)
command terminated with non-zero exit code: Error executing in Docker Container: 137

И с дополнительной регистрацией с включенным уровнем DEBUG:

2019-04-27T13:46:35.035+0000 [job-consumer-214366356] DEBUG org.mongodb.driver.protocol.command [SLF4JLogger.java.debug:56] - Sending command {findandmodify : BsonString{value='data.jobsProcessor'}} to database mmsdbjobs on connection [connectionId{localValue:13, serverValue:31}] to server mongo-db:27017
2019-04-27T13:46:35.036+0000 [job-consumer-214366356] DEBUG org.mongodb.driver.protocol.command [SLF4JLogger.java.debug:56] - Command execution completed
2019-04-27T13:46:35.476+0000 [mms_QuartzSchedulerThread] DEBUG org.quartz.simpl.PropertySettingJobFactory [SimpleJobFactory.java.newJob:51] - Producing instance of Job 'DEFAULT.dbRollupSchedulerJob', class=com.xgen.svc.core.svc.cron.SimpleJob
2019-04-27T13:46:35.477+0000 [mms_QuartzSchedulerThread] DEBUG org.quartz.core.QuartzSchedulerThread [QuartzSchedulerThread.java.run:291] - batch acquisition of 1 triggers
2019-04-27T13:46:35.477+0000 [mms_Worker-31] DEBUG org.quartz.core.JobRunShell [JobRunShell.java.run:201] - Calling execute on job DEFAULT.dbRollupSchedulerJob
2019-04-27T13:46:35.478+0000 [mms_Worker-31] DEBUG org.mongodb.driver.protocol.command [SLF4JLogger.java.debug:56] - Sending command {count : BsonString{value='config.customers'}} todatabase mmsdbconfig on connection [connectionId{localValue:13, serverValue:31}] to server mongo-db:27017
2019-04-27T13:46:35.480+0000 [mms_Worker-31] DEBUG org.mongodb.driver.protocol.command [SLF4JLogger.java.debug:56] - Command execution completed
2019-04-27T13:46:35.481+0000 [mms_Worker-31] DEBUG com.xgen.svc.core.svc.cron.CronJob [CronJob.java.canProceed:47] - Not proceeding with CronJob dbRollupScheduler. No Projects.
command terminated with non-zero exit code: Error executing in Docker Container: 137

Но это не сильно помогает тому, что вызывает прекращение работы док-контейнера.

Есть идеи, что может быть причиной этого?

Обратите внимание, что он работает нормально при использовании обычного докера на моем локальном компьютере с Ubuntu (машина с 8 ГБ ОЗУ).

EDIT:

Основываясь на предложении ниже, я также попытался установить следующие ресурсы в конфигурации развертывания для Mongo Manager:

  kind: DeploymentConfig
  metadata:
    name: ${NAME}
  spec:
    replicas: 1
    selector:
      app: ${NAME}
    strategy:
      type: Recreate  
          ...
        containers:
        - name: ${NAME}
          image: ${IMAGE}
          ports:
           - containerPort: 8080
          resources:
            limits:
              cpu: 8
              memory: 15Gi
            requests:
              cpu: 8
              memory: 15Gi

Но все тот же результат.

И Dockerfile

FROM centos:latest
RUN yum update -y && \
    yum install -y openssl iproute nano net-tools    

COPY run.sh /
RUN chmod 750 /run.sh

ENTRYPOINT ["/run.sh"]

и run.sh:

#!/bin/bash
export TERM="xterm"

curl -k https://downloads.mongodb.com/on-prem-mms/rpm/mongodb-mms-4.0.10.50461.20190403T1841Z-1.x86_64.rpm -o tmp/mongodb-mms-4.0.10.50461.20190403T1841Z-1.x86_64.rpm

cd /tmp \
    && rpm -ivh mongodb-mms-4.0.10.50461.20190403T1841Z-1.x86_64.rpm \
    && rm mongodb-mms-4.0.10.50461.20190403T1841Z-1.x86_64.rpm

cp /opt/configmap/conf-mms/conf-mms.properties /opt/mongodb/mms/conf/
cp /opt/configmap/mms/mms.conf /opt/mongodb/mms/conf/
cp /opt/configmap/logback/logback.xml /opt/mongodb/mms/conf/
chown -R mongodb-mms:mongodb-mms /opt/mongodb/mms/
/bin/bash /opt/mongodb/mms/bin/mongodb-mms start

Где файлы в / opt / configmap монтируются из configmaps.

Ответы [ 2 ]

2 голосов
/ 28 апреля 2019

Думаю, вам лучше следовать документам Установить MongoDB Enterprise Kubernetes Operator , а затем Установить MongoDB через Kubernetes .

Это более современный и предпочтительный способ установки внутри OpenShift.Это должно позаботиться о большей части сложности, изложенной в вашем вопросе.

1 голос
/ 05 мая 2019

Поскольку не было написано ни одного предложения / ответа о том, как успешно докеризировать и развернуть Mongo Ops Manager в OpenShift, выполняя plain неконтейнерную установку, похоже, пока единственное решение, например:

https://docs.opsmanager.mongodb.com/current/tutorial/install-simple-test-deployment/

...