Modern bulut-native ortamında kod yazmak ile üretim ortamına dağıtmak arasındaki boşluk hiç bu kadar geniş olmamışken, hız ve güvenilirlik beklentisi de hiç bu kadar yüksek olmamıştı. DevOps mühendisleri ve platform ekipleri için, yöneticilerin YAML dosyalarını manuel olarak uyguladığı veya betikleri tetiklediği geleneksel emir tabanlı dağıtım modeli artık sürdürülebilir değildir. Bu yaklaşım insan hatası, durum sapması ve denetlenebilirlik eksikliği gibi sorunları beraberinde getirir. İşte burada GitOps devreye girer; beyan edilen altyapı ve uygulama teslimatı için Git'i tek gerçeklik kaynağı olarak kullanan bir paradigmadır. Mevcut araçlar arasında ArgoCD, Kubernetes GitOps uygulamaları için varsayılan standart olarak öne çıkar.
GitOps Nedir ve Neden ArgoCD Seçilmeli?
Özünde GitOps, uygulama geliştirme için kullanılan sürüm kontrolü, işbirliği, uyumluluk ve CI (Sürekli Entegrasyon) gibi DevOps en iyi uygulamalarını altyapı otomasyonuna uygular. Temel ilke, bir Git deposunun sistemin istenen durumunu içerdiğidir. ArgoCD gibi bir GitOps denetleyicisi, küme sürekli olarak izler ve canlı durumun Git'teki beyan edilen durumla eşleştiğinden emin olur. İster kazara ister kötü niyetli olsun, herhangi bir durum sapması oluştuğunda ArgoCD kümesini otomatik olarak istenen duruma geri eşitler.
ArgoCD, Kubernetes'e özgü olması, standart Kubernetes API'lerini kullanması ve ekiplerin uygulama sağlığını, geçmişini ve farklarını görselleştirmesine olanak tanıyan güçlü bir kullanıcı arayüzü sunması nedeniyle özellikle avantajlıdır. GitHub, GitLab ve Bitbucket dahil olmak üzere birden fazla git sağlayıcısını destekler ve bu da onu son derece çok yönlü kılar.
Adım Adım Uygulama
ArgoCD'nin Helm grafiği ve Kubernetes manifestoları sayesinde uygulaması basittir. İlk adım, ArgoCD'yi kümenize yüklemektir. kubectl'un yapılandırıldığını ve bir Kubernetes kümesine erişiminiz olduğunu varsayarsak, ArgoCD'yi aşağıdaki komutu kullanarak dağıtabilirsiniz:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Yükleme tamamlandıktan sonra, web arayüzüne erişmek için ArgoCD sunucusunu dışarıya açmanız gerekir. Yerel testler için port yönlendirme yeterlidir:
kubectl port-forward svc/argocd-server -n argocd 8080:443
Bu şekilde https://localhost:8080 adresinden kullanıcı arayüzüne erişebilirsiniz. Yönetici kullanıcısı için başlangıç şifresi aşağıdaki komutla alınabilir:
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
Uygulama Eşzamanlamasının Yapılandırılması
ArgoCD çalışır durumda olduğunda, bir sonraki adım bir uygulama yapılandırmaktır. Bu, ArgoCD'yi Kubernetes manifestolarınızı barındıran bir Git deposuna yönlendirmeyi içerir. https://github.com/example-org/my-app-manifests adresindeki bir depoda basit bir dağıtım manifestosu olduğunu varsayalım. Bu uygulamayı CLI üzerinden şu şekilde ekleyebilirsiniz:
argocd app create my-app \
--repo https://github.com/example-org/my-app-manifests \
--path manifests \
--dest-server https://kubernetes.default.svc \
--dest-namespace default \
--sync-policy automated
--sync-policy automated bayrağı çok önemlidir. ArgoCD'ye, Git deposunda bir değişiklik algılandığında uygulamayı kümeye otomatik olarak eşzamanlamasını söyler. Bu, dağıtımlar sırasında manuel müdahale gereksinimini ortadan kaldırır.
Üretim İçin En İyi Uygulamalar
Kurulum basit olsa da, üretim ortamları daha sıkı güvenlik ve iş akışı kontrolleri gerektirir. Kritik bir uygulama, uygulamaları ve ekipleri izole etmek için proje kapsamı kullanmaktır. Ayrıca, erişim kontrolünü merkezi olarak yönetmek için ArgoCD kullanıcı arayüzü için SSO (Tek Oturum Açma) özelliğini etkinleştirmek önerilir. Ayrıca, sağlam bir CI/CD (Sürekli Entegrasyon/Sürekli Dağıtım) hattı sağlamak için değişikliklerin önce test için bir staging dalına birleştirildiği ve ardından üretim için ana dala terfi ettirildiği dal tabanlı iş akışları uygulamak da önerilir.
Sonuç
ArgoCD ile GitOps uygulamak, ekiplerin Kubernetes uygulamalarını yönetme şeklini dönüştürür. Altyapıyı kod olarak ele alarak ve sürüm kontrolü için Git'ten yararlanarak organizasyonlar daha büyük istikrar, hatalardan daha hızlı kurtarma ve gelişmiş işbirliği elde ederler. İlk kurulum çaba gerektirse de, otomatik, denetlenebilir ve kendini iyileştiren dağıtımların uzun vadeli faydaları, ArgoCD'yi DevOps araç setinde vazgeçilmez bir araç haline getirir. Küçük başlayın, en iyi uygulamaları erken benimseyin ve teslimat hızınızın uçtuğunu izleyin.