GitOps ile EKS Yönetimi: ArgoCD Kullanımı
GitOps ile EKS Yönetimi: ArgoCD Kullanımı
Geleneksel CI/CD süreçlerinde (Jenkins, GitLab CI), pipeline kodu derler ve ardından kubectl apply komutuyla Kubernetes kümesine iter (Push Model). Ancak bu modelde güvenlik ve senkronizasyon sorunları yaşanabilir. Kümede biri manuel değişiklik yaparsa, Git'teki kod ile kümedeki durum uyumsuz hale gelir (Drift).
GitOps, bu sorunu çözen modern bir işletim modelidir. Temel prensibi şudur: Git, gerçeğin tek kaynağıdır (Single Source of Truth).
GitOps Nedir?
GitOps, altyapı ve uygulama kodunuzu Git reposunda tuttuğunuz ve bir aracın (ArgoCD veya Flux) bu repoyu sürekli izleyip, değişiklikleri kümeye uyguladığı (Pull Model) yöntemdir.
ArgoCD ile EKS Pipeline Örneği
ArgoCD, Kubernetes için geliştirilmiş, GitOps prensiplerini uygulayan bir araçtır. Amazon EKS üzerinde ArgoCD kullanarak nasıl pipeline kuracağımıza bakalım.
1. Kurulum
ArgoCD'yi EKS kümenize Helm ile kurun:
helm repo add argo https://argoproj.github.io/argo-helm
helm install argocd argo/argo-cd -n argocd --create-namespace
2. Uygulama Tanımı (Application Manifest)
ArgoCD'ye hangi repoyu izleyeceğini söylemelisiniz. Bunun için bir YAML dosyası oluşturun:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-app
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/user/my-k8s-repo.git
targetRevision: HEAD
path: k8s-manifests
destination:
server: https://kubernetes.default.svc
namespace: my-app
syncPolicy:
automated:
prune: true
selfHeal: true
3. Süreç Nasıl İşler?
- Geliştirici kodunu yazar ve Git'e pushlar.
- CI aracı (GitHub Actions), Docker imajını oluşturur ve ECR'a atar.
- CI aracı, Kubernetes manifest reposundaki
image: v1satırınıimage: v2olarak günceller ve commit eder. - ArgoCD, Git'teki bu değişikliği fark eder.
- ArgoCD, EKS kümesini Git'teki yeni duruma (v2) senkronize eder.
Avantajları
- Güvenlik: CI aracınızın (Jenkins/GitHub) küme erişim yetkisine (admin) ihtiyacı yoktur. ArgoCD küme içinden dışarıya (Git) bakar.
- Geri Alma (Rollback): Bir sorun mu oldu? Git'te
revertyapmanız yeterli. ArgoCD eski versiyona döner. - Görünürlük: ArgoCD arayüzünden uygulamanın durumunu ve senkronizasyon geçmişini net bir şekilde görebilirsiniz.
GitOps, EKS yönetimini daha güvenli, kararlı ve izlenebilir hale getirir.