Changes

Jump to: navigation, search

Openshift basics

816 bytes added, 21:23, 26 July 2019
Minishfit repository
https://github.com/minishift/minishift/issues/817<br>
 ===Áttekintés===Ahhoz hogy egy általunk készült docker image-et futtatni tudjunk a minishift klaszteren, elsőként fel kell tölteni azt a minshift image repository-ba, ami nem is annyira egyszerű. A minishift docker registry-t csak a minishfit-et futtató VM-ről lehet elérni, az anyagépről nem.   Lépésel: # A minishit-et futó VM-en a docker klienssel be kell lépni a minisfht-ben futó docker registry-be az első pontban szerzett token-el.# Docker-el build-elni kell az image-t a minishfit VM-en. # A minisfhit-et futtató VM-ről push-olni kell az image-t a minisfhit image registry-be. # kubectl run-al el lehet indítani az általunk létrehozott image-et.  Az egyik lehetőségünk az, hogy ssh-val belépünk a minisfhit VM-re (minisfhit ssh) és ott lépünk be a registry-be (docker login) és ott build-eljük és push-oljuk az image-et. A másik sokkal kényelmesebb lehetőség, hogy a minishift VM docker démon-ját átirányítjuk a lokális docker kliensünkre a '''minishift docker-env''' paranccsal. Ezt azért tudjuk megtenni, mert a minisfhit is '''docker-machine'''-t használ. Ugyan ezt a parancsot használjuk docker swarm esetén is, hogy a '''swarm master'''-en adjuk ki a swarm parancsokat. Ennek az a nagy előnye, hogy a docker build-hez szükséges fájlokat vehetjük a lokáli gépről, de a build-elt docker image már a minishfit VM docker lokális repository-ban fog landolni, ahonnan már push-olni tudjuk a minishfit repositroy-ba.   :[[File:ClipCapIt-190727-001229.PNG]]   
Kísérlet képen írtunk egy olyan Java webalkalmazást, ami a GET paraméterben kapott milliszekundum után adja vissza a 200 : 'OK' választ. Az alkalmazás embedded jetty-vel készült, a Docker fájlja az alábbi:
</source>
Az openjdk-11 base image-ből indulunk ki, majd belemásoljuk az összes függőséget, rárakjuk classPath-ra az összes bemásolt jar-t, amjd elindítjuk az alkalmazást a '''com.adam.testapp.App''' main osztállyal. A cél, hogy az ebből készült image-et másoljuk fel az opensfhit repository-ba, majd készítsünk belőle egy Kubernetes deploymentet-et service-el együtt.
A Dokcerfile és az abban hivatkozott összes további fájl lehet az anyagépen.
 
 
===Belépés az openshfit registriy-be===
Ahogy azt már korábban írtuk, át fogjuk irányítani a host gépen futó docker klienst, hogy a minisfhit VM-en futó docker démonhoz kapcsolódjon, így a lokálisan kiadott docker parancsok mind a minishift VM-en futó docker-en fognak végrehajtódni.
 
Irányítsuk át a lokális docker kliensünket a minishfit VM docker démonjára, ugyan úgy, ahogy ezt docker swarm esetében is tennénk:
<pre>
# minishift docker-env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.42.185:2376"
export DOCKER_CERT_PATH="/root/.minishift/certs"
 
# eval $(minishift docker-env)
</pre>
Innentől kezdve minden lokálisan kiadott docker parancs a minishfit vm-en fog futni.
 
 
Ezt le tudjuk ellenőrizni, ha listázzuk vagy a futó konténereket vagy az elérhető image-eket:
<pre>
# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
bitnami/nginx latest ab5cdb60157c 11 hours ago 78.3MB
172.30.1.1:5000/mynamespace/test-app 1.1.0 f984e2105039 23 hours ago 620MB
...
openshift/origin-control-plane v3.11.0 2905f7137f05 4 days ago 829MB
openshift/origin-hyperkube v3.11.0 7f2cb107435c 4 days ago 509MB
openshift/origin-hypershift v3.11.0 7507661b73ff 4 days ago 549MB
...
</pre>
Láthatjuk, hogy csupa openshift-es image van a repóban, tehát már nem az anyagép lokális repository-ját nézzük.
Lépésel:
# Be kell lépni '''oc'''-vel a minisfhit-re, hogy szerezzünk egy OpenShfit token-t amivel majd be tudunk lépni az OpenShfit docker repository-ba.
# A minishit-et futó VM-en a docker klienssel be kell lépni a minisfht-ben futó docker registry-be az első pontban szerzett token-el.
# Docker-el build-elni kell az image-t.
# A minisfhit-et futtató VM-ről push-olni kell az image-t a minisfhit image registry-be.
A célunk, hogy a minisfhit VM-en futó docker démon belépjen a minshift saját registry-ébe, és oda push-olja a saját lokális registry-ében lévő image-et. Ehhez szereznünk kell egy openShift toke-ent és meg kell szerezzük a registry címét.
Az egyik lehetőségünk az, hogy ssh-val belépünk a minisfhit VM-re (minisfhit ssh) és ott lépünk be a registry-be (docker login) és ott build-eljük és push-oljuk az image-et. A másik sokkal kényelmesebb lehetőség, hogy a minishift VM docker démon-ját átirányítjuk a lokális docker kliensünkre a '''minishift docker-env''' paranccsal. Ezt azért tudjuk megtenni, mert a minisfhit is '''docker-machine'''-t használ. Ugyan ezt a parancsot használjuk docker swarm esetén is, hogy a '''swarm master'''-en adjuk ki a swarm parancsokat. Ennek az a nagy előnye, hogy a docker build-hez szükséges fájlokat vehetjük a lokáli gépről, de a build-elt docker image már a minishfit VM docker lokális repository-ban fog landolni, ahonnan már push-olni tudjuk a minishfit repositroy-ba.
Irányítsuk át a lokális docker kliensünket a minishfit VM docker démonjára:
<pre>
# minishift docker-env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.42.185:2376"
export DOCKER_CERT_PATH="/root/.minishift/certs"
# eval $(minishift docker-env)
</pre>
Innentől kezdve minden lokálisan kiadott docker parancs a minishfit vm-en fog futni.
 
Ezt le tudjuk ellenőrizni, ha listázzuk vagy a futó konténereket vagy az elérhető image-eket:
<pre>
# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
bitnami/nginx latest ab5cdb60157c 11 hours ago 78.3MB
172.30.1.1:5000/mynamespace/test-app 1.1.0 f984e2105039 23 hours ago 620MB
...
openshift/origin-control-plane v3.11.0 2905f7137f05 4 days ago 829MB
openshift/origin-hyperkube v3.11.0 7f2cb107435c 4 days ago 509MB
openshift/origin-hypershift v3.11.0 7507661b73ff 4 days ago 549MB
...
</pre>
Láthatjuk, hogy csupa openshift-es image van a repóban, tehát már nem az anyagép lokális repository-ját nézzük.

Navigation menu