2016-12-14 1 views
1

Je souhaite déployer l'application sur Openshift-origin en ligne (next gen). Il y aura au moins 4 pods communicants via les services.Openshift online zookeeper à partir du module dockerfile "Crash loop back off"

En 1er POD, je dois exécuter Zookeeper. J'ai donc créé POD où mon Zookeeper à partir de l'image docker sera en cours d'exécution, mais le statut POD est: Crash loop back off.

J'ai créé nouveau projet

oc new-project my-project 

J'ai créé une nouvelle application pour déployer mon Zookeeper de docker

oc new-app mciz/zookeeper-docker-infispector --name zookeeper 

Et le message de sortie a été:

--> Found Docker image 51220f2 (11 minutes old) from Docker Hub for "mciz/zookeeper-docker-infispector" 

* An image stream will be created as "zookeeper:latest" that will track this image 
* This image will be deployed in deployment config "zookeeper" 
* Ports 2181/tcp, 2888/tcp, 3888/tcp will be load balanced by service "zookeeper" 
    * Other containers can access this service through the hostname "zookeeper" 
* This image declares volumes and will default to use non-persistent, host-local storage. 
    You can add persistent volumes later by running 'volume dc/zookeeper --add ...' 
* WARNING: Image "mciz/zookeeper-docker-infispector" runs as the 'root' user which may not be permitted by your cluster administrator 

--> Creating resources with label app=zookeeper ... 
imagestream "zookeeper" created 
deploymentconfig "zookeeper" created 
service "zookeeper" created 
--> Success 
Run 'oc status' to view your app. 

Puis je courais la liste des gousses :

oc get pods 

avec sortie:

NAME    READY STATUS    RESTART  AGE 
zookeeper-1-mrgn1 0/1  CrashLoopBackOff 5   5m 

journaux: Je courais

oc logs -p zookeeper-1-mrgn1 

avec sortie:

JMX enabled by default 
Using config: /opt/zookeeper/bin/../conf/zoo.cfg 
grep: /opt/zookeeper/bin/../conf/zoo.cfg: No such file or directory 
mkdir: can't create directory '': No such file or directory 
log4j:WARN No appenders could be found for logger   (org.apache.zookeeper.server.quorum.QuorumPeerConfig). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig  for more info. 
Invalid config, exiting abnormally 

Mon dockerfile:

FROM openjdk:8-jre-alpine 
MAINTAINER mciz 

ARG MIRROR=http://apache.mirrors.pair.com 
ARG VERSION=3.4.6 

LABEL name="zookeeper" version=$VERSION 

RUN apk add --no-cache wget bash \ 
    && mkdir /opt \ 
    && wget -q -O - $MIRROR/zookeeper/zookeeper-$VERSION/zookeeper- $VERSION.tar.gz | tar -xzf - -C /opt \ 
    && mv /opt/zookeeper-$VERSION /opt/zookeeper \ 
    && cp /opt/zookeeper/conf/zoo_sample.cfg  /opt/zookeeper/conf/zoo.cfg 

EXPOSE 2181 2888 3888 

WORKDIR /opt/zookeeper 

VOLUME ["/opt/zookeeper/conf"] 

ENTRYPOINT ["/opt/zookeeper/bin/zkServer.sh"] 
CMD ["start-foreground"] 

Répondre

2

Il y a un avertissement dans la nouvelle application sortie de commande:

WARNING: Image "mciz/zookeeper-docker-infispector" runs as the 'root' user which may not be permitted by your cluster administrator 

Vous devriez fixer l'image de docker à ne pas exécuter en tant que root (ou dire OpenShift pour permettre à ce projet de conteneurs de fonctionner en tant que root).

Il existe un exemple spécifique d'image et de modèle Zookeeper qui fonctionne dans Openshift.

https://github.com/openshift/origin/tree/master/examples/zookeeper

Notez les changements Dockerfile pour exécuter le conteneur en tant qu'utilisateur non root

+0

Merci beaucoup. :) –