Argo CD, bir Git deposundaki uygulama orkestrasyonu yapılandırmalarını izler, bunları bir kümedeki uygulamaların canlı durumuyla karşılaştırır ve değişiklikleri hedef kümeye otomatik veya manuel olarak senkronize eder. Kubernetes ortamındaki hizmet dağıtımlarının verimliliğini ve izlenebilirliğini artırmak için Argo CD'yi ASM ile entegre ederek bir GitOps iş akışı uygulayabilirsiniz. Bu yaklaşım, sürüm kontrol sistemi kullanarak uygulamaları otomatik olarak senkronize eder ve dağıtır. Dağıtım sürecini basitleştirir, yapılandırma tutarlılığını korur, şeffaf bir operasyonel geçmiş sunar, sistem bakım kolaylığını ve kararlılığını artırır ve operasyonel maliyetleri düşürür.
Ön Koşullar
Sürümü 1.12.4.50 veya üzeri olan bir ASM örneği oluşturdunuz. Daha fazla bilgi için bkz. ASM örneği oluşturma.
Bir Git deposu oluşturdunuz.
Arka Plan Bilgileri
GitOps, cloud-native uygulamalar için sürekli dağıtımı uygulamanın bir yöntemidir. Alibaba Cloud Service Mesh (ASM), GitOps'u uygulamak amacıyla uygulama sürümleri ve güncellemeleri için Argo CD ile entegre olur. Geliştiriciler, YAML formatında yazılmış uygulama tanımlarını (Deployment, Service) ve trafik yönetimi kurallarını (VirtualService, Gateway, DestinationRule) bir Git deposuna gönderir. Argo CD, Deployment, Service ve VirtualService gibi kümedeki uygulama kaynaklarının mevcut durumunu izler ve gerçek kaynağı görevi gören Git deposunda tanımlanan istenen durumla karşılaştırır. Depo güncellendiğinde Argo CD, uygulamanın otomatik veya manuel olarak senkronize edilmesini ve dağıtılmasını destekler.
Adım 1: Argo CD'yi Yükleme
Argo CD'yi manuel olarak yükleyebilir veya Container Service for Kubernetes (ACK) Uygulama Merkezi'ndeki yerleşik Argo CD özelliğini kullanabilirsiniz. Bu konuda, GitOps iş akışı için ASM ile entegre edilmiş Argo CD'nin manuel kurulumu gösterilmektedir.
Argo CD'yi manuel olarak yüklemek için Argo CD belgelerine bakın.
ACK Uygulama Merkezi, manuel yükleme yapmanıza gerek kalmayan yerleşik bir Argo CD özelliği sunar. ACK Uygulama Merkezi sayesinde uygulama durumlarını kontrol edebilir, Git depolarını ve Helm grafiklerini kullanarak uygulama sürümlerini Kubernetes kümelerine dağıtabilir ve geri alma ile sürüm yayınlama işlemlerini yönetebilirsiniz. Daha fazla bilgi için bkz. Uygulama Merkezine genel bakış.
Adım 2: Veri Düzlemi KubeAPI Erişimini Etkinleştirme
Alibaba Cloud Service Mesh (ASM), yönetilen ve Istio uyumlu bir kontrol düzlemidir; bu nedenle Service Mesh ASM kontrol düzlemi ile veri düzlemi (Container Service for Kubernetes (ACK)) farklı Kubernetes kümelerinde bulunur. Bu yüzden, Argo CD'nin ACK kümesindeki kaynaklara eriştiği şekilde ASM kümesindeki Istio kaynaklarına erişebilmesi için ASM'de veri düzlemi KubeAPI erişimini etkinleştirmeniz gerekir.
ASM konsoluna giriş yapın. Sol gezinme bölmesinde seçeneklerini seçin.
Mesh Management sayfasında, yapılandırmak istediğiniz ASM örneğini bulun. ASM örneğinin adına tıklayın veya Actions sütunundaki Manage seçeneğine tıklayın.
Basic Information bölümünde, Enable Data-plane KubeAPI access yanındaki Enable seçeneğine tıklayın.
Açılan iletişim kutusunda Submit seçeneğine tıklayın.
Adım 3: Bir ASM Ağ Geçidi Oluşturma
ASM konsoluna giriş yapın. Sol gezinme bölmesinde seçeneklerini seçin.
Mesh Management sayfasında ASM örneğinin adına tıklayın. Sol gezinme bölmesinde seçeneklerini seçin.
-
Ingress Gateway sayfasında Create seçeneğine tıklayın. Ayarları yapılandırın ve ardından Create seçeneğine tıklayın.
Aşağıdaki tabloda bazı parametreler açıklanmaktadır. Tüm parametreler hakkında daha fazla bilgi için bkz. Ingress ağ geçidi oluşturma.
Parametre
Açıklama
Name
Bu konuda örnek olarak ingressgateway kullanılmaktadır.
Gateway types
North-South IngressGateway için Kuzey-Güney-Ingress öğesini seçin.
Port Mapping
Add Port seçeneğine tıklayın ve aşağıdaki protokolleri ve bağlantı noktalarını yapılandırın.
-
Protocol değerini HTTP ve Service Port değerini 80 olarak ayarlayın.
-
Protocol değerini HTTPS ve Service Port değerini 443 olarak ayarlayın.
-
Adım 4: Istio Kaynaklarını Argo CD ile Dağıtma
Istio kaynaklarını Kubernetes manifestoları olarak tanımlayıp uygulamanızın manifestolarıyla birlikte Git deposunda saklayabilirsiniz.
-
Bookinfo örnek uygulamasını oluşturun.
-
Argo CD kullanıcı arayüzünde NEW APP seçeneğine tıklayın ve aşağıdaki ayarları yapılandırın.
GENERAL bölümünde Application Name değerini bookinfo, Project değerini default olarak ayarlayın ve PRUNE RESOURCES seçeneğini işaretleyin.
SOURCE bölümünde Repository URL değerini https://github.com/AliyunContainerService/asm-labs.git, Revision değerini argocd-asm ve Path değerini argo-cd/bookinfo olarak ayarlayın.
DESTINATION bölümünde Cluster URL değerini https://kubernetes.default.svc ve Namespace değerini default olarak ayarlayın.
-
Yapılandırmayı tamamladıktan sonra sayfanın üst kısmındaki CREATE seçeneğine tıklayın.
Oluşturma işlemi tamamlandığında, Argo CD uygulama listesinde bookinfo uygulaması Healthy (yeşil kalp simgesi) ve Synced (yeşil onay işareti simgesi) durumuyla görünür. Bu durum, uygulamanın hedef kümeye başarıyla senkronize edildiğini gösterir. Uygulama ayrıntıları sayfasına gitmek için bookinfo öğesine tıklayın; burada APP HEALTH değeri Healthy ve CURRENT SYNC STATUS değeri Synced olarak görüntülenir. Kaynak ağacında Deployment kaynakları (details-v1, productpage-v1, ratings-v1, reviews-v1, reviews-v2 ve reviews-v3), bunlarla ilişkili ReplicaSet'ler ve Pod'lar (çalışan 2/2 durumunda) ile DestinationRule (details, productpage ve reviews), Gateway (bookinfo-gateway) ve VirtualService (bookinfo) kaynakları bulunur; tüm kaynaklar senkronize ve sağlıklı durumdadır.
-
-
Kaynak durumunu ASM konsolunda doğrulayın.
ASM konsoluna giriş yapın. Sol gezinme bölmesinde seçeneklerini seçin.
Mesh Management sayfasında ASM örneğinin adına tıklayın. Sol gezinme bölmesinde seçeneklerini seçin.
Virtual Service sayfasında bookinfo VirtualService'in oluşturulduğunu doğrulayın.
-
Kaynak durumunu ACK konsolunda doğrulayın.
ACK konsoluna giriş yapın. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.
Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde seçeneklerini seçin.
Deployment'ların oluşturulduğunu doğrulayın. Sayfada, her biri çalışan bir Pod'a sahip altı Deployment'ın (details-v1, productpage-v1, ratings-v1, reviews-v1, reviews-v2 ve reviews-v3) başarıyla oluşturulduğu gösterilir.
-
Uygulamaya ASM ağ geçidi üzerinden erişin.
-
ASM ağ geçidi adresini alın.
ASM konsoluna giriş yapın. Sol gezinme bölmesinde seçeneklerini seçin.
Mesh Management sayfasında ASM örneğinin adına tıklayın. Sol gezinme bölmesinde seçeneklerini seçin.
Ingress Gateway sayfasında hedef ağ geçidinin Service address değerini kopyalayın.
-
Tarayıcınızda http://{YOUR_ASM_GATEWAY_ADDRESS}/productpage adresine gidin.
Bookinfo uygulama sayfası yüklenir ve The Comedy of Errors adlı kitabın ayrıntıları gösterilir. Reviews hizmeti üç sürüme sahip olduğundan ve henüz belirli yönlendirme kuralları uygulanmadığından, sayfayı her yenilediğinizde reviews bölümü değişir. Örneğin, bir yenileme işleminde reviews bölümünün altında Reviews served by: reviews-v3-xxx ifadesi görünebilir. Bu davranış, uygulamanın ASM ağ geçidi üzerinden erişilebilir olduğunu ve Istio kaynaklarının başarıyla dağıtıldığını doğrular.
-
Adım 5: GitOps Tabanlı Trafik Yönlendirmeyi Uygulama
Trafik kurallarını yapılandırdıktan sonra http://{your ASM Gateway address}/productpage adresine erişin. Oturum açmadığınızda yalnızca Reviews'ün v1 sürümü görüntülenirken, jason kullanıcı adıyla oturum açtığınızda Reviews'ün v2 sürümü görüntülenir.
-
Yerel VirtualService ve Deployment YAML dosyalarını değiştirin.
-
VirtualService YAML dosyasını aşağıdaki gibi değiştirin:
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: reviews spec: hosts: - reviews http: - match: - headers: end-user: exact: jason route: - destination: host: reviews subset: v2 - route: - destination: host: reviews subset: v1 --- -
Deployment YAML dosyasını aşağıdaki gibi değiştirin:
apiVersion: apps/v1 kind: Deployment metadata: namespace: argocd name: reviews-v1 labels: app: reviews version: v1 spec: replicas: 2
-
-
Değişiklikleri Git deponuza gönderin ve push edin.
git add * git commit -m "reviews-v1" git push -
Git yapılandırmasını kümeyle senkronize edin.
Argo CD'de otomatik senkronizasyonu etkinleştirdiyseniz yapılandırmalar kümeyle otomatik olarak senkronize edilir. Aksi takdirde, bunları manuel olarak senkronize etmek için aşağıdaki adımları izleyin.
-
Argo CD yönetim arayüzündeki bookinfo kartında SYNC seçeneğine tıklayın.
Bir dosya değiştiğinde, bookinfo kartında Status öğesinin sağında OutOfSync durumu belirir. bookinfo uygulamasının durumu artık OutOfSync şeklindedir.
-
Açılan panelde SYNCHRONIZE seçeneğine tıklayın.
Senkronizasyon tamamlandıktan sonra oluşturulan kaynakları ASM konsolunda ve güncellenen kaynakları ACK konsolunda görüntüleyebilirsiniz. Daha fazla bilgi için bkz. Kaynak durumunu ASM konsolunda doğrulama ve Kaynak durumunu ACK konsolunda doğrulama.
-
-
Erişim sonucunu doğrulayın.
-
Oturum açmadan tarayıcınızda http://{YOUR_ASM_GATEWAY_ADDRESS}/productpage adresine gidin.
Sonuç: Reviews hizmetine yönelik tüm trafik v1'e yönlendirilir (yıldız derecelendirmesi yok). Bookinfo ürün ayrıntıları sayfası yüklenir ve The Comedy of Errors özeti, Book Details (Type: paperback, Pages: 200, Publisher: PublisherA, Language: English, ISBN-10: 1234567890, ISBN-13: 123-1234567890) ile Book Reviews bilgileri gösterilir. Reviews bölümünün altında,
reviews-v1-55b668fc65-s48wmgibi mikro hizmet örneğinin Pod adı görünür; bu durum, uygulamanın başarıyla dağıtıldığını ve erişilebilir olduğunu gösterir. -
jasonkullanıcı adı ve herhangi bir parola ile oturum açın.Sonuç: Oturum açtıktan sonra Reviews hizmetine yönelik trafik v2'ye yönlendirilir (siyah yıldız derecelendirmeleri). Sayfanın sağ üst köşesinde jason kullanıcı adı ve bir sign out bağlantısı görünür. Yıldız derecelendirmeleri ve jason kullanıcı adının görünmesi, başarıyla oturum açtığınızı ve trafiğin v2 hizmetine yönlendirildiğini doğrular.
-