Sobes.tech
Middle

OpenShift ilə iş təcrübəniz nədir?

sobes.tech Süni İntellekt

AI-dan cavab

OpenShift Container Platform ilə işləmək təcrübəm var, bunlar daxildir:

  • Klüsterlərin yerləşdirilməsi və idarə olunması: On-premise və buludda (AWS, Azure) klüsterlərin quraşdırılması. Şəbəkə infrastrukturu, saxlama və təhlükəsizliyin konfiqurasiyası.
  • Tətbiqlərin inkişafı və yerləşdirilməsi: Dockerfile yaradılması, şəkillərin qurulması, OpenShift şablonları və Kubernetes manifestlərinin yazılması. CI/CD boru xətləri (Jenkins, GitLab CI) istifadə edərək avtomatlaşdırma.
  • İdarəetmə və monitorinq: İstifadəçilər, layihələr, kvotaların idarə olunması. Klüster və tətbiqlərin vəziyyətini izləmək üçün Prometheus və Grafana istifadə. Xəbərdarlıqların konfiqurasiyası.
  • Problemlərin həlli: Podlar, xidmətlər, marşrutlar ilə bağlı problemlərin diaqnostikası. Loglar və hadisələrin analizi.
  • Ekosistem komponentləri ilə işləmək: OpenShift Registry, OpenShift Routes, OpenShift Service Mesh (Istio), OpenShift Pipelines (Tekton).

Vəzifə nümunələri:

  • Monolit tətbiqin konteynerlərə köçürülməsi və OpenShift-də yerləşdirilməsi.
  • Avtomatik test, quruluş və mikroxidmətlərin yerləşdirilməsi üçün CI/CD boru xətti qurulması.
  • Data replikasiyası və avtomatik keçid ilə dayanıqlı OpenShift klüsterinin konfiqurasiyası.
  • Klüsterdəki bütün tətbiqlər üçün mərkəzləşdirilmiş loglama və monitorinqin tətbiqi.

Həm komanda xətti (oc), həm də OpenShift veb konsolu istifadə etmişəm. OpenShift-ə əsaslanan Kubernetes anlayışlarını yaxşı bilirəm (pods, replicaset, deploymentlar, xidmətlər).

# Tətbiqin yerləşdirilməsi üçün sadə OpenShift şablonu nümunəsi
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: Tətbiq adı
    description: Tətbiqin adı.
    value: my-simple-app
    required: true
  - name: IMAGE_NAME
    displayName: Şəkil adı
    description: Şəkilin adı.
    value: my-image
    required: true
  - name: IMAGE_NAMESPACE
    displayName: Şəkil Namespace
    description: Şəkil axını namespace.
    value: my-project
    required: true
  - name: IMAGE_TAG
    displayName: Şəkil etiketi
    description: Şəkil etiketi.
    value: latest
    required: true