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