Při nasazování aplikací do Red Hat OpenShift je užitečné zkontrolovat stav a stav komponent. Nejprve vám ukážu, jak nasazení fungují, a poté se můžete podívat na několik zpráv o stavu.
Jak se nasazují rozhraní OpenShift API
Aplikace Red Hat OpenShift lze vytvořit pomocí bitové kopie kontejneru hostované ve vzdáleném registru, souboru YAML, který specifikuje prostředky k vytvoření, bitové kopie tvůrce pomocí zdrojového kódu z vašeho úložiště Git, souboru Dockerfile a dalších.
[ Také by se vám mohlo líbit: Jak jsem vytvořil interaktivní přednášku OpenShift pro Red Hat Academy. ]
V závislosti na zvolené metodě Deployment nebo DeploymentConfig Lze použít objekt API. OpenShift podporuje obě možnosti Deployment objektů a DeploymentConfig předměty; nicméně Nasazení objekty jsou doporučeny, pokud nepotřebujete konkrétní funkci poskytovanou DeploymentConfig objektů.
V OpenShift při vytváření aplikací ze souboru YAML Deployment preferovány jsou objekty. Při sestavování aplikací ze souboru Dockerfile nebo ze zdroje DeploymentConfig objekt bude automaticky vytvořen oc new-app
příkaz.
Při odstraňování problémů DeploymentConfig nebo Nasazení API, zaměřte se na stavy vytvořených replik a podů. A DeploymentConfig vytvoří ReplicationController která spravuje životní cykly podů. Stejným způsobem Nasazení vytváří repliky které spravují pody.
Příklad nasazení MySQL
Tento příklad vytvoří databázi MySQL z obrázku hostovaného na adrese registry.access.redhat.com:
oc new-app --docker-image=registry.access.redhat.com/rhscl/mysql-57-rhel7:latest --name=mydb -e MYSQL_USER=user1 -e MYSQL_PASSWORD=mypa55 -e MYSQL_DATABASE=testdb -e MYSQL_ROOT_PASSWORD=r00tpa55
[sysadmin@server ~]$ oc describe dc mydb
Name: mydb
Namespace: DEV
Created: 130 minutes ago
Labels: app=dev
...output omitted...
Deployment #1 (latest):
Name: mydb-1
Created: 15 minutes ago
Status: Complete
Replicas: 1 current / 1 desired
Selector: app=mydb,deployment=mydb-1,deploymentconfig=mydb
Labels: app=mydb,openshift.io/deployment-config.name=mydb
Pods Status: 1 Running / 0 Waiting / 0 Succeeded / 0 Failed
...output omitted...
Z toho můžete odvodit následující:
- Stav:Dokončeno – DeploymentConfig úspěšně dokončeno.
- Repliky:1 aktuální / 1 požadovaná – Chtěli jste vytvořit jeden pod (požadovaný) a jeden byl úspěšně vytvořen (aktuální).
- Stav podů:1 běžící / 0 čekání / 0 úspěšných / 0 neúspěšných - Je tu jeden modul běžící bez selhání, a to je velmi důležité. Každý neúspěšný modul musí být prozkoumán a opraven, protože to bude znamenat nezdravé nasazení.
Nasazení aplikace PHP
Tento druhý příklad nasazuje aplikaci PHP a toto je popis DeploymentConfig :
[sysadmin@server]$ oc describe dc/php-helloworld
Name: php-helloworld
Namespace: web
Created: 12 minutes ago
Labels: app=php-helloworld
Annotations: openshift.io/generated-by=OpenShiftNewApp
Latest Version: 1
Selector: app=php-helloworld,deploymentconfig=php-helloworld
Replicas: 1
Triggers: Config, Image(php-helloworld@latest, auto=true)
Strategy: Rolling
Template:
Labels: app=php-helloworld
deploymentconfig=php-helloworld
...output omitted...
Containers:
php-helloworld:
Image: image-registry.openshift-image-registry.svc:5000/s2i/phphelloworld@
sha256:6d27...b983
Ports: 8080/TCP, 8443/TCP
Environment: <none>
Mounts: <none>
Volumes: <none>
Deployment #1 (latest):
Name: php-helloworld-1
Created: 5 minutes ago
Status: Complete
Replicas: 3 current / 5 desired
Selector: app=php-helloworld,deployment=php-helloworld-1,deploymentconfig=phphelloworld
Labels: app=php-helloworld,openshift.io/deployment-config.name=php-helloworld
Pods Status: 3 Running / 0 Waiting / 0 Succeeded / 2 Failed
...output omitted...
Jak vidíte, existují dva neúspěšné moduly. To znamená, že nasazení není v pořádku a je třeba jej prozkoumat. Správci mohou prohlížet protokoly z jednotlivých podů a použít příslušnou opravu.
[ Naučte se základy používání Kubernetes v tomto bezplatném cheatu. ]
Sbalit
Při odstraňování problémů s nasazením je vždy důležité sledovat stav modulu, požadovaný počet replik a kolik jich aktuálně běží. Tyto informace mohou usnadnit a zefektivnit odstraňování problémů.