На основании этого руководства:
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.