Middle
Aké máte skúsenosti s OpenShift?
sobes.tech AI
Odpoveď od AI
Mám skúsenosti s platformou OpenShift Container Platform, vrátane:
- Nasadenie a správa clusterov: Inštalácia clusterov na mieste a v cloude (AWS, Azure). Konfigurácia siete, úložísk a bezpečnosti.
- Vývoj a nasadenie aplikácií: Vytváranie Dockerfile, zostavovanie obrazov, písanie šablón OpenShift a manifestov Kubernetes. Použitie CI/CD pipeline-ov (Jenkins, GitLab CI) na automatizáciu nasadenia.
- Administrácia a monitorovanie: Správa používateľov, projektov, kvót. Použitie Prometheus a Grafana na sledovanie stavu clusteru a aplikácií. Nastavenie upozornení.
- Riešenie problémov: Diagnostika problémov s podmi, službami, trasami. Analýza logov a udalostí.
- Práca s komponentmi ekosystému: OpenShift Registry, OpenShift Routes, OpenShift Service Mesh (Istio), OpenShift Pipelines (Tekton).
Príklady úloh:
- Migrácia monolitickej aplikácie do kontajnerov a jej nasadenie na OpenShift.
- Vytvorenie CI/CD pipeline pre automatické testovanie, build a deployment mikroslužieb na OpenShift.
- Nastavenie odolného clusteru OpenShift s replikáciou dát a automatickým prepínaním pri zlyhaní.
- Zavedenie centralizovaného logovania a monitorovania pre všetky aplikácie v clustri.
Používal som ako príkazový riadok (oc), tak aj webové rozhranie OpenShift. Dobre rozumiem konceptom Kubernetes, na ktorých je postavený OpenShift (pody, ReplicaSets, deploymenty, služby).
# Príklad jednoduchého šablónu OpenShift pre nasadenie aplikácie
apiVersion: template.openshift.io/v1
kind: Template
metadata:
name: simple-app
objects:
- apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
name: ${APP_NAME}
spec:
replicas: 1
selector:
app: ${APP_NAME}
strategy:
type: Recreate
template:
metadata:
labels:
app: ${APP_NAME}
spec:
containers:
- name: ${APP_NAME}
image: ${IMAGE_NAME}
ports:
- containerPort: 8080
protocol: TCP
triggers:
- type: ConfigChange
- imageChangeParams:
automatic: true
containerNames:
- ${APP_NAME}
from:
kind: ImageStreamTag
namespace: ${IMAGE_NAMESPACE}
name: ${IMAGE_NAME}:${IMAGE_TAG}
type: ImageChange
parameters:
- name: APP_NAME
displayName: Názov aplikácie
description: Názov aplikácie.
value: my-simple-app
required: true
- name: IMAGE_NAME
displayName: Názov obrazu
description: Názov obrazu.
value: my-image
required: true
- name: IMAGE_NAMESPACE
displayName: Namespace obrazu
description: Namespace streamu obrazu.
value: my-project
required: true
- name: IMAGE_TAG
displayName: Tag obrazu
description: Tag obrazu.
value: latest
required: true