Bu konuda, bir GitOps sistemi kullanarak uygulamaların nasıl oluşturulacağı, dağıtılacağı, güncelleneceği ve geri alınacağı açıklanmaktadır.
Önkoşullar
Fleet örneğine ilişkili iki küme eklendi (hizmet sağlayıcı kümesi, hizmet tüketici kümesi).
Uygulama oluşturma ve dağıtma
Bu bölümde, API sunucu adresi https://47.97.XX.XX:6443 olan bir ACK kümesine echo-server-demo örnek uygulamasının nasıl oluşturulacağı ve dağıtılacağı açıklanmaktadır.
Ağ sorunları nedeniyle GitHub'a erişemiyorsanız https://github.com/AliyunContainerService/gitops-demo.git adresini https://code.aliyun.com/shuwei.hsw/gitops-demo.git ile değiştirebilirsiniz.
Argo CD konsolu
Argo CD kullanıcı arayüzünde oturum açın. Daha fazla bilgi için bkz. Argo CD'ye oturum açmak için Argo CD kullanıcı arayüzünü kullanma.
Sol gezinme bölmesinde Applications seçeneğini tıklayın, ardından + NEW APP öğesini tıklayın.
-
Görüntülenen panelde aşağıdaki parametreleri yapılandırın ve CREATE öğesini tıklayın.
Bölüm
Parametre
Değer
GENERAL
Application Nameecho-server-demo
Project Namedefault
SYNC POLICY
Açılan listeden Automatic seçeneğini belirleyin. Automatic seçeneğiyle Argo CD, Git deposunu her 3 dakikada bir tarar ve değişiklikleri kümeye senkronize eder. Manual seçeneğiyle SYNC öğesini tıklayarak senkronizasyonu manuel olarak tetiklersiniz.
SYNC OPTIONS
AUTO-CREATE NAMESPACE seçeneğini belirleyin
SOURCE
Repository URL
Açılan listedenhttps://github.com/AliyunContainerService/gitops-demo.gitseçeneğini belirleyin
RevisionHEAD
Pathmanifests/helm/echo-server
DESTINATION
Cluster URL/Cluster Name
Açılan listeden hedef kümenizi seçin
Namespaceecho-server-demo
HELM
VALUES FILESvalues.yaml -
Uygulama oluşturulduktan sonra durumunu Applications sayfasında görüntüleyin. SYNC POLICY değeri Manual olarak ayarlandıysa uygulamayı dağıtmak için SYNC öğesini tıklayın. Durumu hem Healthy hem de Synced olarak gösterildiğinde uygulama başarıyla dağıtılmış olur.

Argo CD CLI
-
Aşağıdaki komutu çalıştırarak
echo-server-demouygulamasını oluşturun.argocd app create echo-server-demo --repo https://github.com/AliyunContainerService/gitops-demo.git --path manifests/directory/production --dest-namespace echo-server-demo --dest-server https://47.97.XX.XX:6443 --sync-policy noneBeklenen çıktı:
application 'echo-server-demo' createdAşağıdaki tabloda komut parametreleri açıklanmaktadır.
Parametre
Açıklama
repo
Uygulamanın Git deposunun URL'si.
path
Depodaki uygulama manifestlerinin yolu.
dest-server
Hedef kümenin API sunucu adresi.
dest-namespace
Hedef kümedeki ad alanı.
sync-policy
Uygulamanın senkronizasyon ilkesi. Varsayılan değer
nonedeğeridir. Geçerli değerler şunlardır:autovenone.auto: Argo CD, değişiklikler için Git deposunu düzenli aralıklarla denetler ve bunları otomatik olarak hedef kümeye dağıtır.none: Uygulamayı hedef kümeye dağıtmak için senkronizasyonu manuel olarak tetiklemeniz gerekir.
-
Aşağıdaki komutu çalıştırarak
echo-server-demouygulamasını hedef kümeye senkronize edin ve dağıtın.argocd app sync echo-server-demoBeklenen çıktı:
TIMESTAMP GROUP KIND NAMESPACE NAME STATUS HEALTH HOOK MESSAGE 2022-10-17T16:43:20+08:00 apps Deployment echo-server-demo echo-server OutOfSync Missing 2022-10-17T16:43:20+08:00 Service echo-server-demo echo-server OutOfSync Missing 2022-10-17T16:43:20+08:00 Service echo-server-demo echo-server Synced Progressing 2022-10-17T16:43:20+08:00 Service echo-server-demo echo-server Synced Progressing service/echo-server-demo created 2022-10-17T16:43:20+08:00 apps Deployment echo-server-demo echo-server OutOfSync Missing deployment.apps/echo-server-demo created 2022-10-17T16:43:20+08:00 apps Deployment echo-server-demo echo-server Synced Progressing deployment.apps/echo-server-demo created Name: echo-server-demo Project: default Server: https://47.97.XX.XX:6443 Namespace: echo-server-demo URL: https://127.0.0.1:65384/applications/echo-server-demo Repo: https://github.com/AliyunContainerService/gitops-demo.git Target: Path: manifests/directory/production SyncWindow: Sync Allowed Sync Policy: <none> Sync Status: Synced to (02af62b) Health Status: Progressing Operation: Sync Sync Revision: 02af62bf21e76f53ebfcc282c45865d2308c**** Phase: Succeeded Start: 2022-10-17 16:43:19 +0800 CST Finished: 2022-10-17 16:43:20 +0800 CST Duration: 1s Message: successfully synced (all tasks run) GROUP KIND NAMESPACE NAME STATUS HEALTH HOOK MESSAGE Service echo-server-demo echo-server-demo Synced Progressing service/echo-server-demo created apps Deployment echo-server-demo echo-server-demo Synced Progressing deployment.apps/echo-server-demo created
Uygulama listesi
Argo CD konsolu
Sol gezinme bölmesinde uygulama listesini görüntülemek için Applications seçeneğini belirleyin.
-
Kaynak topolojisini ve her bir Kubernetes kaynağının durumunu gösteren ayrıntılar sayfasını açmak için bir uygulama adına tıklayın.

Argo CD CLI
Uygulama listesini görüntülemek için aşağıdaki komutu çalıştırın.
argocd app list
Beklenen çıktı:
NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGET
echo-server https://47.97.XX.XX:6443 echo-server-demo default Synced Healthy <none> <none> https://github.com/AliyunContainerService/gitops-demo.git manifests/directory/production
Uygulama güncelleme
GitOps modelinde Git deposu tek doğruluk kaynağıdır. Bir uygulamaya ilişkin tüm değişiklikleri Git deposuna kaydetmeniz ve ardından bunları hedef kümeye senkronize etmeniz gerekir.
Değişiklikleri Git deposuna kaydedin.
-
Uygulamanın en son sürümünü hedef kümeye senkronize etmek ve dağıtmak için aşağıdaki komutu çalıştırın.
argocd app sync echo-server-demo -
Uygulamaya erişmek için aşağıdaki komutu çalıştırın.
curl XX.XX.XX.XX:8080/version # Replace XX.XX.XX.XX with the application's IP address.Beklenen çıktı:
"Hello Echo Server v2.0"
Uygulama geri alma
Argo CD konsolu
Sol gezinme bölmesinde Applications seçeneğini belirleyin.
echo-server-demouygulamasını bulun ve adına tıklayın.Uygulama ayrıntıları sayfasında HISTORY AND ROLLBACK seçeneğini tıklayın. HISTORY AND ROLLBACK panelinde geri almak istediğiniz sürümü seçin ve ardından sağ üst köşede Rollback öğesini tıklayın.
Geri alma işlemi tamamlandıktan sonra uygulama ayrıntıları sayfasına dönün ve uygulama sürümünü doğrulayın.
Argo CD CLI
-
Kullanılabilir geçmiş sürümleri görüntülemek için aşağıdaki komutu çalıştırın.
argocd app history echo-server-demoBeklenen çıktı:
ID DATE REVISION 0 2022-10-17 16:43:20 +0800 CST (02af62b) 1 2022-10-17 16:52:49 +0800 CST (56ae547)Geçerli
REVISIONdeğeri56ae547ve seri numarası 1'dir. -
Uygulamayı
REVISIONdeğeri02af62bolan geçmiş sürüme geri almak için aşağıdaki komutu çalıştırın.argocd app rollback echo-server-demo 0Geri alma işlemi tamamlandıktan sonra uygulamaya hala erişebildiğinizi doğrulayın.
-
Uygulamaya erişmek için aşağıdaki komutu çalıştırın.
curl XX.XX.XX.XX:8080/version # Replace XX.XX.XX.XX with the application's IP address.Beklenen çıktı:
"Hello Echo Server v1.0"