

 **Bantu tingkatkan halaman ini** 

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Untuk berkontribusi pada panduan pengguna ini, pilih **Edit halaman ini pada GitHub** tautan yang terletak di panel kanan setiap halaman.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Konsep Argo CD
<a name="argocd-concepts"></a>

Argo CD mengimplementasikan GitOps dengan memperlakukan Git sebagai satu-satunya sumber kebenaran untuk penerapan aplikasi Anda. Topik ini berjalan melalui contoh praktis, kemudian menjelaskan konsep inti yang perlu Anda pahami ketika bekerja dengan Kemampuan EKS untuk Argo CD.

## Memulai dengan Argo CD
<a name="_getting_started_with_argo_cd"></a>

Setelah membuat kemampuan Argo CD (lihat[Membuat kemampuan Argo CD](create-argocd-capability.md)), Anda dapat mulai menerapkan aplikasi. Contoh ini berjalan melalui pendaftaran cluster dan membuat Aplikasi.

### Langkah 1: Mengatur
<a name="_step_1_set_up"></a>

 **Daftarkan cluster Anda** (wajib)

Daftarkan cluster tempat Anda ingin menyebarkan aplikasi. Untuk contoh ini, kami akan mendaftarkan cluster yang sama di mana Argo CD berjalan (Anda dapat menggunakan nama `in-cluster` untuk kompatibilitas dengan sebagian besar contoh Argo CD):

```
# Get your cluster ARN
CLUSTER_ARN=$(aws eks describe-cluster \
  --name my-cluster \
  --query 'cluster.arn' \
  --output text)

# Register the cluster using Argo CD CLI
argocd cluster add $CLUSTER_ARN \
  --aws-cluster-name $CLUSTER_ARN \
  --name in-cluster \
  --project default
```

**catatan**  
Untuk informasi tentang mengonfigurasi CLI CD Argo agar berfungsi dengan kemampuan Argo CD di EKS, lihat. [Menggunakan Argo CD CLI dengan kemampuan terkelola](argocd-comparison.md#argocd-cli-configuration)

Atau, daftarkan klaster menggunakan Kubernetes Secret (lihat [Daftarkan cluster target](argocd-register-clusters.md) detailnya).

 **Konfigurasikan akses repositori (opsional**)

Contoh ini menggunakan GitHub repositori publik, jadi tidak diperlukan konfigurasi repositori. Untuk repositori pribadi, konfigurasikan akses menggunakan AWS Secrets Manager, CodeConnections, atau Kubernetes Secrets (lihat detailnya). [Konfigurasikan akses repositori](argocd-configure-repositories.md)

Untuk AWS layanan (ECR untuk bagan Helm,, dan CodeCommit) CodeConnections, Anda dapat mereferensikannya secara langsung di sumber daya Aplikasi tanpa membuat Repositori. Peran Kemampuan harus memiliki izin IAM yang diperlukan. Lihat [Konfigurasikan akses repositori](argocd-configure-repositories.md) untuk detail.

### Langkah 2: Buat Aplikasi
<a name="_step_2_create_an_application"></a>

Buat manifes Aplikasi ini di`my-app.yaml`:

```
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: guestbook
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://github.com/argoproj/argocd-example-apps.git
    targetRevision: HEAD
    path: guestbook
  destination:
    name: in-cluster
    namespace: guestbook
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    syncOptions:
    - CreateNamespace=true
```

Terapkan Aplikasi:

```
kubectl apply -f my-app.yaml
```

Setelah menerapkan Aplikasi ini, Argo CD: 1. Menyinkronkan aplikasi dari Git ke klaster Anda (penerapan awal) 2. Memonitor repositori Git untuk perubahan 3. Secara otomatis menyinkronkan perubahan berikutnya ke cluster 4 Anda. Mendeteksi dan mengoreksi penyimpangan apa pun dari keadaan yang diinginkan 5. Menyediakan status kesehatan dan riwayat sinkronisasi di UI

Lihat status aplikasi:

```
kubectl get application guestbook -n argocd
```

Anda juga dapat melihat aplikasi menggunakan Argo CD CLI atau Argo CD UI (dapat diakses dari konsol EKS di bawah tab Capabilities cluster Anda).

**catatan**  
Saat menggunakan Argo CD CLI dengan kemampuan terkelola, tentukan aplikasi dengan awalan namespace:. `argocd app get argocd/guestbook`

**catatan**  
Gunakan nama cluster di `destination.name` (nama yang Anda gunakan saat mendaftarkan cluster). Kemampuan terkelola tidak mendukung default lokal dalam cluster (`kubernetes.default.svc`).

## Konsep inti
<a name="_core_concepts"></a>

### GitOps prinsip dan jenis sumber
<a name="_gitops_principles_and_source_types"></a>

Argo CD mengimplementasikan GitOps, di mana sumber aplikasi Anda adalah satu-satunya sumber kebenaran untuk penerapan:
+  **Deklaratif** - Status yang diinginkan dideklarasikan menggunakan manifes YAMAL, bagan Helm, atau overlay Kustomize
+  **Berversi** - Setiap perubahan dilacak dengan jejak audit lengkap
+  **Otomatis** - Argo CD terus memantau sumber dan secara otomatis menyinkronkan perubahan
+  **Penyembuhan diri** - Mendeteksi dan mengoreksi penyimpangan antara keadaan cluster yang diinginkan dan aktual

 **Jenis sumber yang didukung**:
+  **Repositori** Git - GitHub, GitLab, Bitbucket, CodeCommit (HTTPS, SSH, atau) CodeConnections
+  Pendaftaran **Helm - pendaftar** HTTP (seperti`https://aws.github.io/eks-charts`) dan pendaftar OCI (seperti) `public.ecr.aws`
+  Gambar **OCI - Gambar** kontainer yang berisi manifes atau bagan Helm (seperti) `oci://registry-1.docker.io/user/my-app`

Fleksibilitas ini memungkinkan organisasi untuk memilih sumber yang memenuhi persyaratan keamanan dan kepatuhan mereka. Misalnya, organisasi yang membatasi akses Git dari cluster dapat menggunakan ECR untuk bagan Helm atau gambar OCI.

Untuk informasi selengkapnya, lihat [Sumber Aplikasi](https://argo-cd.readthedocs.io/en/stable/user-guide/application-sources/) dalam dokumentasi Argo CD.

### Sinkronisasi dan rekonsiliasi
<a name="_sync_and_reconciliation"></a>

Argo CD terus memantau sumber dan cluster Anda untuk mendeteksi dan memperbaiki perbedaan:

1. Sumber jajak pendapat untuk perubahan (default: setiap 6 menit)

1. Membandingkan status yang diinginkan dengan status cluster

1. Menandai aplikasi sebagai `Synced` atau `OutOfSync` 

1. Menyinkronkan perubahan secara otomatis (jika dikonfigurasi) atau menunggu persetujuan manual

1. Memantau kesehatan sumber daya setelah sinkronisasi

 **Gelombang sinkronisasi** mengontrol urutan pembuatan sumber daya menggunakan anotasi:

```
metadata:
  annotations:
    argocd.argoproj.io/sync-wave: "0"  # Default if not specified
```

Sumber daya diterapkan dalam urutan gelombang (angka yang lebih rendah terlebih dahulu, termasuk angka negatif seperti`-1`). Gelombang `0` adalah default jika tidak ditentukan. Hal ini memungkinkan Anda untuk membuat dependensi seperti namespaces (wave`-1`) sebelum deployment (wave) sebelum services (wave`0`). `1`

 **Penyembuhan diri** secara otomatis mengembalikan perubahan manual:

```
spec:
  syncPolicy:
    automated:
      selfHeal: true
```

**catatan**  
Kemampuan terkelola menggunakan pelacakan sumber daya berbasis anotasi (bukan berbasis label) untuk kompatibilitas yang lebih baik dengan konvensi Kubernetes dan alat lainnya.

Untuk informasi rinci tentang fase sinkronisasi, kait, dan pola lanjutan, lihat dokumentasi [sinkronisasi CD Argo](https://argo-cd.readthedocs.io/en/stable/user-guide/sync-waves/).

### Aplikasi kesehatan
<a name="_application_health"></a>

Argo CD memantau kesehatan semua sumber daya dalam aplikasi Anda:

 **Status Kesehatan**: \$1 **Sehat** - Semua sumber daya berjalan seperti yang diharapkan \$1 **Kemajuan** - Sumber daya sedang dibuat atau diperbarui \$1 **Terdegradasi - Beberapa sumber daya tidak sehat (pod mogok, pekerjaan gagal) \$1 **Ditangguhkan** - Aplikasi sengaja dijeda \$1 **Hilang** - Sumber daya yang didefinisikan dalam Git** tidak ada di klaster

Argo CD memiliki pemeriksaan kesehatan bawaan untuk sumber daya Kubernetes umum (Deployment,, Jobs StatefulSets, dll.) dan mendukung pemeriksaan kesehatan khusus untuk. CRDs

Kesehatan aplikasi ditentukan oleh semua sumber dayanya - jika ada sumber daya`Degraded`, aplikasinya`Degraded`.

Untuk informasi lebih lanjut, lihat [Resource Health](https://argo-cd.readthedocs.io/en/stable/operator-manual/health/) dalam dokumentasi Argo CD.

### Pola multi-cluster
<a name="_multi_cluster_patterns"></a>

Argo CD mendukung dua pola penyebaran utama:

 **H ub-and-spoke** - Jalankan Argo CD pada cluster manajemen khusus yang menyebarkan ke beberapa cluster beban kerja: \$1 Kontrol dan visibilitas terpusat \$1 Kebijakan yang konsisten di semua cluster \$1 Satu instance CD Argo untuk dikelola \$1 Pemisahan yang jelas antara bidang kontrol dan beban kerja

 **Per-cluster** - Jalankan Argo CD di setiap cluster, hanya mengelola aplikasi cluster itu: \$1 Pemisahan cluster (satu kegagalan tidak memengaruhi yang lain) \$1 Jaringan yang lebih sederhana (tidak ada komunikasi lintas cluster) \$1 Pengaturan awal yang lebih mudah (tanpa registrasi cluster)

Pilih hub-and-spoke tim platform yang mengelola banyak cluster, atau per-cluster untuk tim independen atau ketika cluster harus sepenuhnya terisolasi.

Untuk konfigurasi multi-cluster yang mendetail, lihat[Pertimbangan Argo CD](argocd-considerations.md).

### Proyek
<a name="_projects"></a>

Proyek menyediakan pengelompokan logis dan kontrol akses untuk Aplikasi:
+  **Pembatasan sumber** - Batasi repositori Git mana yang dapat digunakan
+  **Pembatasan tujuan** - Batasi cluster dan ruang nama mana yang dapat ditargetkan
+  **Pembatasan sumber daya** - Batasi tipe sumber daya Kubernetes mana yang dapat digunakan
+  **Integrasi RBAC** - Memetakan proyek ke pengguna dan AWS grup Pusat Identitas IDs

Aplikasi milik satu proyek. Jika tidak ditentukan, mereka menggunakan `default` proyek, yang tidak memiliki batasan secara default. Untuk penggunaan produksi, edit `default` proyek untuk membatasi akses dan membuat proyek baru dengan batasan yang sesuai.

Untuk konfigurasi proyek dan pola RBAC, lihat. [Konfigurasikan izin Argo CD](argocd-permissions.md)

### Opsi sinkronisasi
<a name="_sync_options"></a>

Sempurnakan perilaku sinkronisasi dengan opsi umum:
+  `CreateNamespace=true`- Secara otomatis membuat namespace tujuan
+  `ServerSideApply=true`- Gunakan aplikasi sisi server untuk resolusi konflik yang lebih baik
+  `SkipDryRunOnMissingResource=true`- Lewati dry run saat CRDs belum ada (berguna untuk instance kro)

```
spec:
  syncPolicy:
    syncOptions:
    - CreateNamespace=true
    - ServerSideApply=true
    - SkipDryRunOnMissingResource=true
```

Untuk daftar lengkap opsi sinkronisasi, lihat [dokumentasi opsi sinkronisasi CD Argo](https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/).

## Langkah selanjutnya
<a name="_next_steps"></a>
+  [Konfigurasikan akses repositori](argocd-configure-repositories.md)- Konfigurasikan akses repositori Git
+  [Daftarkan cluster target](argocd-register-clusters.md)- Daftarkan cluster target untuk penyebaran
+  [Buat Aplikasi](argocd-create-application.md)- Buat Aplikasi pertama Anda
+  [Pertimbangan Argo CD](argocd-considerations.md)- Pola khusus EKS, integrasi Pusat Identitas, dan konfigurasi multi-cluster
+  [Dokumentasi CD Argo - Dokumentasi](https://argo-cd.readthedocs.io/en/stable/) CD Argo yang komprehensif termasuk kait sinkronisasi, pemeriksaan kesehatan, dan pola lanjutan