All Products
Search
Document Center

Container Service for Kubernetes:Buat alur kerja

Last Updated:Jul 06, 2025

Kluster alur kerja didasarkan pada Argo Workflows sumber terbuka dan dapat digunakan untuk pipa Continuous Integration dan Continuous Delivery (CI/CD), pemrosesan data, pembelajaran mesin, serta simulasi perhitungan. Artikel ini memberikan contoh cara menggunakan Alibaba Cloud Argo CLI untuk membuat alur kerja dan mengonfigurasi sumber daya CPU dan memori.

Prasyarat

Catatan penggunaan

Akun layanan alur kerja

Alur kerja memungkinkan Anda menentukan akun layanan untuk mengakses sumber daya Kubernetes lainnya. Anda dapat membuat akun layanan, dan kluster alur kerja secara otomatis memberikan izin kepada akun tersebut. Jika akun layanan memiliki izin yang tidak mencukupi, bergabunglah dengan grup DingTalk 35688562 untuk mendapatkan dukungan teknis.

Alibaba Cloud Argo CLI

Alibaba Cloud Argo CLI sepenuhnya kompatibel dengan Argo CLI sumber terbuka dan menyediakan peningkatan kemampuan metrik serta pencatatan. Anda dapat menggunakan CLI ini untuk memantau Penggunaan CPU, Penggunaan memori, dan biaya operasional dari sebuah alur kerja. Selain itu, Anda dapat menggunakannya untuk mendapatkan log pod yang telah dihapus dari alur kerja.

Ikuti langkah-langkah berikut:

  1. Jalankan perintah berikut untuk mengunduh Alibaba Cloud Argo CLI:

    wget https://ack-one.oss-cn-hangzhou.aliyuncs.com/cli/v3.4.12/argo-cli-aliyun-linux
  2. Jalankan perintah berikut untuk membuat argo-cli-aliyun-linux dapat dieksekusi:

    chmod +x argo-cli-aliyun-linux
  3. Pindahkan file yang dapat dieksekusi ke direktori yang termasuk dalam variabel lingkungan, misalnya: /usr/local/bin/.

    mv argo-cli-aliyun-linux /usr/local/bin/argo

Buat alur kerja

Anda dapat menggunakan Alibaba Cloud Argo CLI atau kubectl untuk membuat alur kerja.

Gunakan Alibaba Cloud Argo CLI untuk mengelola alur kerja

  1. Buat file bernama helloworld-workflow.yaml dan tambahkan konten berikut ke dalam file:

    apiVersion: argoproj.io/v1alpha1
    kind: Workflow                  # jenis spesifikasi k8s baru.
    metadata:
      generateName: hello-world-    # nama spesifikasi alur kerja.
    spec:
      entrypoint: whalesay          # panggil template whalesay.
      templates:
        - name: whalesay              # nama template.
          container:
            image: docker/whalesay
            command: [ cowsay ]
            args: [ "hello world" ]
  2. Jalankan perintah berikut untuk mengirimkan alur kerja:

    argo submit helloworld-workflow.yaml
  3. Periksa status alur kerja.

    1. Jalankan perintah berikut untuk melihat daftar alur kerja:

      argo list

      Keluaran yang diharapkan:

      NAME                STATUS      AGE   DURATION   PRIORITY
      hello-world-lgdpp   Succeeded   2m    37s        0
    2. Jalankan perintah berikut untuk memeriksa status alur kerja:

      argo get hello-world-lgdpp

      Keluaran yang diharapkan:

      Name:                hello-world-lgdpp
      Namespace:           default
      ServiceAccount:      unset (akan berjalan dengan ServiceAccount default)
      Status:              Succeeded
      Conditions:
       PodRunning          False
       Completed           True
      ....
      Duration:            37 detik
      Progress:            1/1
      ResourcesDuration:   17s*(1 cpu),17s*(100Mi memory)
      
      STEP                  TEMPLATE  PODNAME            DURATION  MESSAGE
       ✔ hello-world-lgdpp  whalesay  hello-world-lgdpp  27s

Gunakan kubectl untuk mengelola alur kerja

Setelah mengonfigurasi file kubeconfig, Anda dapat menggunakan kubectl untuk mengelola kluster alur kerja. Namun, beberapa operasi dibatasi dibandingkan dengan kluster Kubernetes biasa. Tabel berikut menjelaskan izin yang tersedia untuk mengelola sumber daya menggunakan kubectl.

Sumber Daya

Izin

priorityclasses

Izin untuk mengelola PriorityClasses dan menyesuaikan PriorityClasses dalam alur kerja untuk mengontrol penjadwalan pod berdasarkan prioritas pod.

namespaces

Izin untuk membuat namespaces dan izin penuh pada semua sumber daya di namespaces yang dikelola sendiri. Namun, Anda tidak dapat mengakses sumber daya di namespaces sistem. Namespaces sistem merujuk pada namespaces yang namanya dimulai dengan kube-.

Penting

Namespace yang dinamai setelah ID kluster adalah namespace sistem Argo. Anda dapat mengelola namespace ini. Misalnya, Anda dapat memodifikasi pengaturan alur kerja Argo di workflow-controller-configmap.

persistentvolumes

Izin penuh.

persistentvolumeclaims

Izin penuh pada sumber daya di namespaces yang dikelola sendiri.

secretsconfigmapsserviceaccounts

Izin penuh pada sumber daya di namespaces yang dikelola sendiri.

pods

Izin baca pada sumber daya di namespaces yang dikelola sendiri.

pods/logevents

Izin baca pada sumber daya di namespaces yang dikelola sendiri.

pods/exec

Izin untuk membuat sumber daya di namespaces yang dikelola sendiri.

Argo:

workflows

workflowtasksets

workflowtemplates

cronworkflows

Izin penuh pada sumber daya di namespaces yang dikelola sendiri.

Konfigurasikan permintaan CPU dan memori untuk kontainer dalam alur kerja

Kluster alur kerja lebih memilih penggunaan instans wadah elastis preemptible. Instans wadah elastis bayar sesuai pemakaian juga digunakan untuk optimasi biaya. Periode perlindungan instans wadah elastis preemptible adalah 1 jam. Pastikan setiap langkah dalam alur kerja dapat diselesaikan dalam waktu 1 jam.

Instans wadah elastis preemptible hanya mendukung konfigurasi 2 vCPU atau lebih tinggi.

  • Jika tidak ada permintaan sumber daya yang dikonfigurasi untuk sebuah kontainer atau kurang dari 2 vCPU/4 GiB, sistem akan menggunakan 2 vCPU/4 GiB secara default.

  • Jika permintaan sumber daya melebihi 2 vCPU/4 GiB, sistem akan secara otomatis mencocokkan instans wadah elastis yang memenuhi spesifikasi.

    Tabel berikut menjelaskan permintaan CPU dan memori yang didukung. Kami merekomendasikan agar Anda tidak menyetel permintaan CPU lebih dari 8 vCPU.

    vCPU

    Memori (GiB)

    2

    4, 8, dan 16

    4

    4, 8, 16, dan 32

    8

    4, 8, 16, 32, dan 64

Paksa instans wadah elastis bayar sesuai pemakaian untuk menjalankan alur kerja

Jika Anda tidak ingin menggunakan instans wadah elastis preemptible untuk menjalankan tugas-tugas penting dalam mode prioritas biaya, Anda dapat memaksa instans wadah elastis bayar sesuai pemakaian untuk menjalankan alur kerja.

Konfigurasikan parameter requests dan limits di bagian Container, seperti yang ditunjukkan dalam kode sampel berikut:

apiVersion: argoproj.io/v1alpha1
kind: Workflow                  # jenis spesifikasi k8s baru.
metadata:
  generateName: hello-world-    # nama spesifikasi alur kerja.
spec:
  entrypoint: whalesay         # panggil template whalesay.
  templates:
    - name: whalesay              # nama template.
      container:
        image: docker/whalesay
        command: [ cowsay ]
        args: [ "hello world" ]
        resources:
          requests:
            cpu: 0.5
            memory: 1Gi
          limits:
            cpu: 0.5
            memory: 1Gi