All Products
Search
Document Center

Container Service for Kubernetes:Gunakan ApplicationSet untuk membuat beberapa aplikasi

Last Updated:Jun 26, 2025

ApplicationSet memungkinkan Anda membuat dan menerapkan satu atau lebih aplikasi ke beberapa kluster menggunakan satu template orkestrasi. Topik ini menjelaskan cara menggunakan ApplicationSet untuk membuat beberapa aplikasi.

Prasyarat

  • Anda telah masuk ke sistem GitOps. Untuk informasi lebih lanjut, lihat Masuk ke Sistem GitOps.

  • kubectl telah diinstal dan file kubeconfig yang digunakan untuk masuk ke instance ACK One Fleet yang ingin Anda gunakan telah diperoleh. Jalur default file kubeconfig adalah ~/.kube/config.

Contoh

Dalam contoh ini, aplikasi echo-server diterapkan ke Cluster Production dan Cluster Staging. Berikut adalah struktur direktori manifests dalam repositori Git yang digunakan untuk menerapkan aplikasi echo-server:

.
├── Dockerfile
├── go.mod
├── go.sum
├── main.go
└── manifests
    └── directory
        ├── production
        │ ├── deployment.yaml
        │ └── service.yaml
        └── staging
            ├── deployment.yaml
            └── service.yaml

Aplikasi echo-server di Cluster Production berbeda dari aplikasi echo-server di Cluster Staging dalam hal versi aplikasi dan cara aplikasi tersebut diekspos. Oleh karena itu, subdirektori production dan staging dibuat untuk memisahkan template orkestrasi untuk aplikasi echo-server di Cluster Production dan Cluster Staging.

Prosedur

  1. Buat file bernama applicationset.yaml berdasarkan konten berikut:

    ApplicationSet digunakan untuk membuat dua aplikasi bernama production-echo-server dan staging-echo-server. Aplikasi production-echo-server diterapkan berdasarkan file manifest di subdirektori manifests/directory/production. Aplikasi staging-echo-server diterapkan berdasarkan file manifest di subdirektori manifests/directory/staging.

    apiVersion: argoproj.io/v1alpha1
    kind: ApplicationSet
    metadata:
      name: echo-server
    spec:
      generators:
      - list:
          elements:
          - cluster: production
            url: https://47.91.XX.XX:6443
          - cluster: staging
            url: https://47.111.XX.XX:6443
      template:
        metadata:
          name: '{{cluster}}-echo-server'
        spec:
          project: default
          source:
            repoURL: https://code.aliyun.com/shuwei.hsw/echo-server.git
            targetRevision: main
            path: manifests/directory/{{cluster}}
          destination:
            server: '{{url}}'
            namespace: multi-echo-server
  2. Jalankan perintah berikut untuk menerapkan ApplicationSet:

    kubectl -n argocd apply -f applicationset.yaml
  3. Jalankan perintah berikut untuk menanyakan aplikasi yang dibuat:

    kubectl -n argocd get application

    Output yang Diharapkan:

    NAME                     SYNC STATUS   HEALTH STATUS
    production-echo-server   OutOfSync     Missing
    staging-echo-server      OutOfSync     Missing
  4. Jalankan perintah berikut untuk menyinkronkan aplikasi ke kluster:

    argocd app sync production-echo-server staging-echo-server
  5. Uji akses ke aplikasi echo-server.

    • Jalankan perintah berikut untuk mengakses aplikasi echo-server di Cluster Production:

      curl XX.XX.XX.XX:8080/version     #Ganti XX.XX.XX.XX dengan alamat IP aplikasi echo-server.

      Output yang Diharapkan:

      "Hello Echo Server v1.0"
    • Jalankan perintah berikut untuk mengakses aplikasi echo-server di Cluster Staging:

      curl XX.XX.XX.XX:8080/version     #Ganti XX.XX.XX.XX dengan alamat IP aplikasi echo-server.

      Output yang Diharapkan:

      "Hello Echo Server v2.0"

Referensi

Untuk informasi lebih lanjut tentang cara menggunakan ApplicationSets, lihat ApplicationSet.