全部产品
Search
文档中心

Auto Scaling:Membangun dan memperbarui gambar contoh kontainer elastis secara otomatis dengan menggunakan pipeline Apsara DevOps

更新时间:Jul 06, 2025

Jika grup penskalaan Anda mencakup contoh kontainer elastis, memperbarui gambar secara manual dapat memakan waktu dan rentan terhadap kesalahan. Untuk menghindari masalah ini, kami merekomendasikan penggunaan fitur pipeline Apsara DevOps di Auto Scaling. Fitur ini mengotomatiskan pembuatan, pembaruan, dan penyebaran gambar ke contoh kontainer elastis Anda.

Prinsip implementasi

Solusi ini mengintegrasikan pipeline Apsara DevOps dengan Auto Scaling untuk memungkinkan pembuatan dan penyebaran gambar cepat di seluruh contoh kontainer elastis setelah pembaruan kode. Proses implementasinya adalah sebagai berikut:

  1. Membangun: Pipeline Apsara DevOps mengemas dan membangun kode Anda dari repositori kode menjadi gambar Docker.

  2. Menerbitkan: Pipeline Apsara DevOps kemudian menerbitkan gambar Docker ke repositori Container Registry.

  3. Memperbarui: Setelah penerbitan, pipeline Apsara DevOps menggunakan CloudOps Orchestration Service (OOS) untuk memperbarui gambar pada contoh kontainer elastis di grup penskalaan Anda, termasuk konfigurasi penskalaan yang digunakan untuk instans baru.

Untuk informasi lebih lanjut tentang Apsara DevOps, lihat Apa itu Alibaba Cloud DevOps?

Persiapan

Jika Anda menggunakan Pengguna Resource Access Management (RAM), pastikan bahwa Anda memiliki izin berikut. Untuk informasi tentang cara memberikan izin kepada Pengguna RAM, lihat Berikan Izin kepada Pengguna RAM.

Contoh Kebijakan Kustom

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "ess:*",
                "cr:*",
                "rdc:*",
                "vpc:Describe*",
                "ecs:DescribeSecurityGroups",
                "oos:ListExecutions",
                "oos:ListTaskExecutions",
                "oos:GetExecutionTemplate",
                "eci:Describe*",
                "eci:ListUsage",
                "oss:GetExecutionTemplate",
                "ram:GetRole"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

Konfigurasikan lingkungan

Untuk membangun dan menyebarkan gambar di seluruh contoh kontainer elastis dalam grup penskalaan Anda, selesaikan langkah-langkah berikut:

Langkah 1: Buat repositori Container Registry Alibaba Cloud

Penting

Jika Anda sudah memiliki repositori Container Registry, Anda dapat melewati langkah ini.

Setelah membuat repositori Container Registry, Anda dapat menyimpan gambar Anda di repositori tersebut.

  1. Masuk ke Konsol Container Registry.

  2. Buat instans Container Registry.

    1. Di bilah navigasi atas, pilih wilayah Container Registry.

      Catatan

      Untuk mendukung akses berbasis nama domain melalui virtual private cloud (VPC), disarankan untuk membuat repositori Container Registry di wilayah yang sama dengan grup penskalaan Anda. Jika Anda membuat repositori Container Registry di wilayah yang berbeda dari grup penskalaan Anda, Anda harus mengaktifkan akses Internet untuk repositori Container Registry dan contoh kontainer elastis di grup penskalaan Anda.

    2. Di halaman Instans, klik Instance of Personal Edition untuk membuat instans.

      image

    3. Setelah instans dibuat, buka halaman Instans Edisi Pribadi dan klik Reset Docker Login Password.

      image

  3. Setelah mereset kata sandi logon, klik Namespace di panel navigasi kiri lalu klik Create Namespace untuk membuat namespace.

  4. Klik Repositories di panel navigasi kiri lalu klik Create Repository. Di kotak dialog Buat Repositori, konfigurasikan parameter sesuai kebutuhan bisnis Anda. Tabel berikut menjelaskan parameter.

    • Informasi Repositori

      Parameter

      Deskripsi

      Contoh

      Namespace

      Pilih namespace yang Anda buat di Langkah 3.

      ess_eci_test_namespace

      Repository Name

      Masukkan nama kustom untuk repositori.

      ess_eci_test_repo

      Repository Type

      Pilih Privat.

      Privat

      Summary

      Masukkan alasan pembuatan repositori.

      tes

    • Sumber Kode

      Di langkah Sumber Kode, pilih Local Repository dan klik Create Repository.

  5. Setelah repositori dibuat, buka halaman Details, temukan titik akhir publik, lalu salin titik akhir tersebut untuk digunakan nanti.

Langkah 2: Buat grup penskalaan tipe Elastic Container Instance

Penting

Jika Anda sudah memiliki grup penskalaan, Anda dapat melewati langkah ini.

Untuk membuat grup penskalaan, gunakan salah satu metode berikut:

  • Buat grup penskalaan menggunakan file YAML

  • Buat grup penskalaan menggunakan formulir

Metode 1: Buat grup penskalaan menggunakan file YAML

  1. Masuk ke Konsol Auto Scaling.

  2. Di bilah navigasi atas, pilih wilayah Auto Scaling. Di panel navigasi kiri, klik Scaling Groups. Di halaman Grup Penskalaan, klik Create.

  3. Di tab Create by YAML File, konfigurasikan parameter sesuai petunjuk untuk membuat grup penskalaan dan klik Create. Dalam topik ini, file YAML berikut digunakan. Untuk informasi lebih lanjut tentang cara membuat grup penskalaan menggunakan file YAML, lihat Gunakan File YAML Kubernetes untuk Mengonfigurasi Grup Penskalaan Tipe Elastic Container Instance.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-demo
      annotations:
        k8s.aliyun.com/ess-scaling-group-name: ess-eci-test
        k8s.aliyun.com/ess-scaling-group-min-size: 0
        k8s.aliyun.com/ess-scaling-group-max-size: 5
    spec:
      selector:
        matchLabels:
          app: nginx-demo
      replicas: 0
      template:
        metadata:
          labels:
            app: nginx-demo
          annotations:
            k8s.aliyun.com/eci-with-eip: false
        spec:
          containers:
            - name: nginx
              image: registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:latest
              ports:
                - containerPort: 80
                  name: http
                - containerPort: 443
                  name: https
              resources:
                requests:
                  memory: 0.05Gi
                  cpu: 50m
                limits:
                  memory: 1Gi
                  cpu: '1'
    Peringatan

    Jika Anda sudah memiliki gambar, ganti gambar di file YAML contoh dengan milik Anda. Jika tidak ada gambar yang tersedia, gunakan gambar dari file YMAL contoh. Gambar tersebut akan diganti secara otomatis saat pipeline berjalan. Jika Anda tidak menentukan gambar, Anda tidak dapat membuat grup penskalaan.

    Parameter

    Parameter

    Deskripsi

    Contoh

    k8s.aliyun.com/ess-scaling-group-name

    Nama grup penskalaan.

    ess-eci-test

    k8s.aliyun.com/ess-scaling-group-min-size

    Batas bawah jumlah instans dalam grup penskalaan. Jika jumlah instans dalam grup penskalaan kurang dari nilai parameter ini, Auto Scaling secara otomatis membuat instans dalam grup penskalaan hingga mencapai batas bawah.

    0

    k8s.aliyun.com/ess-scaling-group-max-size

    Batas atas jumlah instans dalam grup penskalaan. Jika jumlah instans dalam grup penskalaan lebih besar dari nilai parameter ini, Auto Scaling secara otomatis menghapus instans dari grup penskalaan hingga jumlah instans turun ke batas atas.

    5

    k8s.aliyun.com/eci-with-eip

    Menentukan apakah akan secara otomatis membuat elastic IP addresses (EIPs) dan mengaitkan EIPs dengan contoh kontainer elastis.

    false

Metode 2: Buat grup penskalaan menggunakan formulir

  1. Masuk ke Konsol Auto Scaling.

  2. Di bilah navigasi atas, pilih wilayah Auto Scaling.

  3. Buat grup penskalaan.

    1. Di panel navigasi kiri, klik Scaling Groups. Di halaman Grup Penskalaan, klik create.

    2. Di tab Create by Form, konfigurasikan parameter sesuai petunjuk untuk membuat grup penskalaan dan klik Create. Tabel berikut menjelaskan pengaturan parameter untuk contoh ini. Parameter apa pun yang tidak disertakan tetap menggunakan nilai default. Untuk informasi lebih lanjut, lihat Buat Grup Penskalaan.

      Parameter

      Deskripsi

      Contoh

      Scaling Group Name

      Masukkan nama untuk grup penskalaan.

      ess-eci-test

      Type

      Pilih ECI, yang menentukan bahwa grup penskalaan berisi contoh kontainer elastis.

      ECI

      Instance Configuration Source

      Jangan tentukan template untuk pembuatan otomatis contoh kontainer elastis pada tahap ini. Setelah Anda membuat grup penskalaan, Anda harus melanjutkan untuk membuat konfigurasi penskalaan.

      Buat dari Awal

      Minimum Number of Instances

      Jika Anda menetapkan parameter ini ke 1, grup penskalaan harus berisi setidaknya satu contoh kontainer elastis.

      0

      Maximum Number of Instances

      Jika Anda menetapkan parameter ini ke 5, grup penskalaan dapat berisi hingga lima contoh kontainer elastis.

      5

      VPC

      Tentukan VPC. Contoh kontainer elastis yang terkandung dalam grup penskalaan ini berada di VPC ini.

      vpc-test****-001

      vSwitch

      Tentukan beberapa vSwitch dari zona berbeda untuk meningkatkan tingkat keberhasilan operasi perluasan skala.

      vsw-test****

  4. Buat konfigurasi penskalaan untuk grup penskalaan.

    1. Temukan grup penskalaan yang Anda buat dan klik Details di kolom Tindakan untuk pergi ke halaman detail grup penskalaan.

    2. Di tab Instance Configuration Sources, klik Scaling Configurations. Lalu, klik Create Scaling Configuration untuk pergi ke halaman Create Scaling Configuration.

    3. Konfigurasikan parameter sesuai petunjuk. Di kotak dialog Pratinjau Konfigurasi Penskalaan, klik Create. Lalu, klik Enable. Tabel berikut menjelaskan pengaturan parameter yang digunakan dalam contoh ini. Parameter apa pun yang tidak disertakan tetap menggunakan nilai default. Untuk informasi lebih lanjut tentang cara membuat konfigurasi penskalaan, lihat Buat Konfigurasi Penskalaan Tipe Elastic Container Instance.

      Parameter

      Deskripsi

      Contoh

      Billing Method

      Pilih metode penagihan berdasarkan kebutuhan bisnis Anda.

      Bayar sesuai pemakaian

      Security Group

      Pilih grup keamanan berdasarkan kebutuhan bisnis Anda.

      sg-****oer

      Container Configurations > Container Name

      Masukkan nama kustom untuk kontainer.

      nginx

      Container Configurations > Image

      Pilih gambar dan tag gambar berdasarkan kebutuhan bisnis Anda.

      Peringatan

      Jika Anda memiliki gambar yang ada, Anda dapat menggunakan gambar yang ada. Jika Anda tidak memiliki gambar yang ada, kami sarankan Anda menggunakan gambar contoh. Jika Anda tidak menentukan gambar, Anda tidak dapat membuat grup penskalaan.

      • Nama gambar: registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx.

      • Tag gambar: latest.

    4. Di tab Scaling Configurations, temukan konfigurasi penskalaan yang Anda buat dan klik Apply di kolom Tindakan untuk mengaktifkan konfigurasi penskalaan.

Langkah 3: Konfigurasikan pipeline Apsara DevOps

Anda harus mengonfigurasi pipeline Apsara DevOps untuk mengotomatiskan pembuatan paket gambar, pelepasan, dan penyebaran.

  1. Di halaman detail grup penskalaan, klik tab Publish Management lalu klik Publish by Using Apsara DevOps.

    image

  2. Pilih organisasi dari daftar drop-down Organisasi untuk Diasosiasikan dan klik Next.

    Penting

    Jika tidak ada organisasi yang tersedia, klik Create Organization untuk membuat organisasi sesuai petunjuk. Setelah membuat dan memilih organisasi, selesaikan otorisasi sesuai petunjuk.

  3. Konfigurasikan pipeline.

    1. Konfigurasikan sumber pipeline. Di bagian Pipeline Source, klik + Add lalu klik Sample Code Source. Lalu, klik Add.

      image

      Catatan

      Jika Anda memiliki repositori kode sendiri, Anda dapat memilih URL repositori kode Anda sesuai petunjuk.

    2. Tambahkan tugas pembuatan gambar.

      1. Di bagian Image Building Task, klik + Add.

      2. Di panel Image Building Task, klik Create Service Connection di bagian Select Service Connection. Setelah halaman ditampilkan, klik Create Service Connection.

        image

      3. Di kotak dialog yang muncul, pilih Container Registry (ACR) dan klik Next. Lalu, pilih Authorize Service. Jika tombol Otorisasi Layanan tidak muncul, klik Create untuk pergi ke halaman otorisasi dan lalu klik Create.

      4. Kembali ke panel Image Building Task. Di daftar drop-down Service Connection, pilih koneksi layanan yang telah dibuat. Di daftar drop-down Image Repository, pilih repositori gambar yang telah dibuat dan klik Add.

        image

    3. Tambahkan tugas penyebaran.

      1. Di bagian Deployment Task, klik + Add. Di bagian Select Service Connection, klik Create Service Connection.

        image

      2. Di kotak dialog yang muncul, pilih Auto Scaling. Klik Next lalu klik Create.

      3. Di bagian Image Deployment, pilih Build an image and push it to Alibaba Cloud Image Warehouse Personal Edition.Mirror VPC address dan klik Add.

        Catatan

        Jika grup penskalaan dan gambar berada di wilayah yang sama, disarankan untuk memilih Build an image and push it to Alibaba Cloud Image Warehouse Personal Edition.Mirror VPC address. Jika Anda ingin menarik gambar dalam kasus lain, pastikan bahwa contoh kontainer elastis dapat mengakses Internet.

    4. Klik Create.

Studi kasus: Bangun dan sebarkan gambar

Penting

Jika Pengguna RAM lain ingin menggunakan fitur ini, pastikan bahwa Pengguna RAM tersebut termasuk dalam organisasi Anda dan memiliki izin pipeline. Pengguna RAM juga harus memiliki izin berikut:

  • Izin untuk mengelola sumber daya Apsara DevOps RDC

  • Izin baca-saja untuk sumber daya RAM

  • Izin untuk mengelola sumber daya CloudOps Orchestration Service (OOS)

Setelah Anda memperbarui kode, klik Run di tab Publish by Using Apsara DevOps untuk mengemas dan menyebarkan kode baru ke grup penskalaan Anda.

  1. Selesaikan persiapan berikut:

    • Konfigurasikan lingkungan. Untuk informasi lebih lanjut, lihat Konfigurasikan Lingkungan.

    • Perbarui dan dorong kode Anda ke repositori kode.

  2. Bangun dan sebarkan gambar dengan beberapa klik.

    1. Buka halaman detail grup penskalaan. Klik tab Publish Management, pilih tab Publish by Using Apsara DevOps, lalu klik Run. Catatan baru akan ditambahkan ke daftar catatan yang sedang berjalan.

      image

    2. Di daftar catatan, klik Details untuk melihat detail pipeline. Tunggu hingga pipeline selesai dieksekusi. Setelah pipeline selesai, contoh kontainer elastis dan konfigurasi penskalaan grup penskalaan Anda diperbarui secara otomatis. Instans baru akan menggunakan gambar terbaru.

      image

      • Di tab Instance Configuration Sources, temukan konfigurasi penskalaan aktif dan klik Edit untuk memeriksa konfigurasi penskalaan. Periksa apakah gambar di bagian Container Configurations telah diperbarui.

      • Picu peristiwa perluasan skala secara manual. Di tab Instances, klik instans kontainer elastis yang baru diperluas skalanya dan periksa apakah instans tersebut menggunakan gambar baru.

      • Jika grup penskalaan berisi instans kontainer elastis dalam status Berjalan, klik nama instans tersebut di tab Instances untuk membuka halaman detail instans dan periksa apakah gambar instans telah diperbarui.