Sobes.tech
Middle

OpenShift ile ilgili deneyiminiz nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

OpenShift Container Platform ile çalışma deneyimim var, şunları içerir:

  • Küme dağıtımı ve yönetimi: On-premise ve bulut ortamında (AWS, Azure) kümelerin kurulumu. Ağ altyapısı, depolama ve güvenliğin yapılandırılması.
  • Uygulama geliştirme ve dağıtımı: Dockerfile oluşturma, görüntüleri derleme, OpenShift Şablonları ve Kubernetes Manifests yazma. Otomasyon için CI/CD boru hatları (Jenkins, GitLab CI) kullanma.
  • Yönetim ve izleme: Kullanıcılar, projeler, kota yönetimi. Küme ve uygulamaların durumu için Prometheus ve Grafana kullanımı. Uyarıların yapılandırılması.
  • Sorun giderme: Podlar, servisler, rotalar ile ilgili sorunların teşhisi. Günlükler ve olayların analizi.
  • Eko-sistem bileşenleri ile çalışma: OpenShift Registry, OpenShift Routes, OpenShift Service Mesh (Istio), OpenShift Pipelines (Tekton).

Görev örnekleri:

  • Monolitik uygulamanın konteynerlere göçü ve OpenShift üzerinde dağıtımı.
  • Otomatik test, derleme ve mikroservislerin OpenShift'e dağıtımı için CI/CD boru hattı oluşturma.
  • Veri çoğaltması ve otomatik geçiş ile dayanıklı bir OpenShift kümesi yapılandırma.
  • Tüm uygulamalar için merkezi günlükleme ve izleme kurma.

Hem komut satırı (oc) hem de OpenShift web konsolu kullandım. OpenShift'in temelini oluşturan Kubernetes kavramlarını iyi anlıyorum (podlar, replicasetler, dağıtımlar, servisler).

# Uygulama dağıtımı için basit bir OpenShift Şablonu örneği
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: Uygulama Adı
    description: Uygulamanın adı.
    value: my-simple-app
    required: true
  - name: IMAGE_NAME
    displayName: Görüntü Adı
    description: Görüntünün adı.
    value: my-image
    required: true
  - name: IMAGE_NAMESPACE
    displayName: Görüntü Adı Uzayı
    description: Görüntü akışının uzayı.
    value: my-project
    required: true
  - name: IMAGE_TAG
    displayName: Görüntü Etiketi
    description: Görüntünün etiketi.
    value: latest
    required: true