Sobes.tech
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