All Products
Search
Document Center

Container Service for Kubernetes:Menyebar workload dan mengonfigurasi load balancing di kluster ACK yang dikelola (Mode Otomatis)

Last Updated:Apr 02, 2026

Topik ini menjelaskan cara menyebar workload di kluster ACK yang dikelola (Auto Mode) dan mengeksposnya ke internet menggunakan ALB Ingress. Setelah selesai, Anda dapat mengakses aplikasi melalui nama domain-nya, sehingga memungkinkan pengelolaan lalu lintas eksternal dan load balancing yang efisien.

Dalam topik ini, Anda akan menyelesaikan langkah-langkah berikut:

  1. Buat namespace untuk aplikasi contoh.

  2. Sebarkan aplikasi Nginx contoh dan buat Service untuk mengekspos aplikasi ke jaringan kluster.

  3. Buat ALB Ingress untuk mengekspos aplikasi ke internet. Langkah ini melibatkan pembuatan AlbConfig secara manual untuk mengelola instans Application Load Balancer (ALB) dan IngressClass untuk dikaitkan dengan AlbConfig tersebut.

  4. Verifikasi penyebaran dan akses aplikasi melalui browser. Anda dapat melepas resource jika tidak lagi diperlukan.

Setelah menyelesaikan langkah-langkah tersebut, Anda akan memiliki hal-hal berikut:

  • Aplikasi Nginx contoh yang berjalan dengan dua replica.

  • Titik akhir publik yang stabil untuk aplikasi yang disediakan oleh ALB Ingress dan Service.

  • Dengan Auto Mode, ACK secara otomatis menskalakan aplikasi Anda berdasarkan workload dan mengelola siklus hidup node, sehingga mengurangi beban O&M Anda.

Prasyarat

Langkah 1: Membuat namespace

Buat namespace untuk tutorial ini guna mengisolasi resource.

  1. Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Namespaces and Quotas.

  3. Klik Create. Pada kotak dialog yang muncul, masukkan nama untuk namespace, misalnya my-nginx-namespace, konfigurasi pengaturan lainnya, lalu klik OK.

Langkah 2: Menyebar aplikasi dan service Nginx

Pada langkah ini, Anda akan menyebarkan Deployment Nginx contoh bernama my-nginx dan Service bernama my-nginx-svc untuk mengekspos aplikasi.

  • Deployment: dua replica, gambar aplikasi contoh Nginx, dan port 80 diekspos untuk menerima lalu lintas jaringan HTTP.

  • Service: Service bertipe ClusterIP yang memetakan port 80 Service ke port 80 kontainer pod dan menggunakan pemilih label untuk mencocokkan pod.

Bagian ini hanya menyediakan prosedur contoh. Untuk informasi selengkapnya tentang cara membuat workload dan Service, lihat Create a workload dan Service management.
  1. Buat file bernama my-nginx.yaml dengan kode berikut untuk menyebarkan Deployment dan Service di namespace tersebut.

    apiVersion: apps/v1 
    kind: Deployment
    metadata:
      name: my-nginx    # Nama aplikasi contoh.
      namespace: my-nginx-namespace  # Ganti dengan nama namespace yang telah Anda buat.
      labels:
        app: nginx
    spec:
      replicas: 2       # Jumlah replica.
      selector:
        matchLabels:
          app: nginx     # Nilai parameter ini harus sama dengan nilai selector dalam konfigurasi Service. Hal ini memungkinkan aplikasi diekspos oleh Service.
      template:
        metadata:
          labels:
            app: nginx
        spec:
        #  nodeSelector:
        #    env: test-team
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            ports:
            - containerPort: 80         # Port yang diekspos di Service.
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: nginx
      name: my-nginx-svc
      namespace: my-nginx-namespace  # Ganti dengan nama namespace yang telah Anda buat.
    spec:
      ports:
      - port: 80
        protocol: TCP
        targetPort: 80
      selector:
        app: nginx
      type: ClusterIP   # Jika Anda menggunakan Flannel, atur tipe menjadi NodePort.
  2. Sebarkan Deployment dan Service.

    kubectl apply -f my-nginx.yaml
  3. Periksa status Deployment dan Service.

    • Periksa status Deployment.

      kubectl get deployment my-nginx -n my-nginx-namespace

      Output yang diharapkan:

      NAME       READY   UP-TO-DATE   AVAILABLE   AGE
      my-nginx   2/2     2            2           4m36s
    • Periksa status Service:

      kubectl get svc my-nginx-svc -n my-nginx-namespace

      Output yang diharapkan:

      NAME           TYPE        CLUSTER-IP        EXTERNAL-IP   PORT(S)   AGE
      my-nginx-svc   ClusterIP   192.XX.XX.164   <none>        80/TCP    42s

Langkah 3: Membuat ALB Ingress

Untuk menggunakan ALB Ingress dalam mengelola lalu lintas eksternal ke aplikasi di kluster, Anda harus menyiapkan resource berikut.

Sebelum membuat ALB Ingress, kami sarankan Anda memahami prinsip dan persyaratannya. Untuk informasi selengkapnya, lihat Manage ALB Ingresses.
  • ALB Ingress Controller: komponen yang mengelola resource Ingress. ALB Ingress Controller dipasang secara default saat Anda mengaktifkan Auto Mode untuk kluster.

  • AlbConfig: Custom Resource Definition (CRD) yang digunakan untuk mengonfigurasi instans ALB. Setiap AlbConfig berkorespondensi dengan satu instans ALB, yang berfungsi sebagai titik masuk permintaan pengguna dan meneruskannya ke Service backend.

  • IngressClass: Saat membuat ALB Ingress, Anda menentukan IngressClass untuk mereferensikan AlbConfig yang sesuai. Hal ini memungkinkan Anda menerapkan kebijakan routing dan load balancing aplikasi tertentu.

Buat AlbConfig

  1. Buat file bernama alb.yaml dengan konten berikut untuk membuat AlbConfig.

    • AlbConfig ini menentukan addressType sebagai Internet, yang berarti instans Application Load Balancer (ALB) akan memiliki Alamat IP publik, nama domain DNS-nya dapat di-resolve ke Alamat IP publik tersebut, dan dapat diakses dari internet.

    • Untuk vSwitchId, tentukan ID dua vSwitch dari dua zona berbeda. vSwitch tersebut harus berada di VPC yang sama dengan kluster dan di zona yang didukung oleh ALB.

      Anda dapat memperoleh ID vSwitch di halaman vSwitch di VPC console. Untuk membuat vSwitch, lihat Create and manage a vSwitch.
    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: alb
    spec:
      config:
        name: alb
        addressType: Internet  # Jenis alamat layanan load balancing. Internet menentukan bahwa layanan dapat diakses melalui internet.
        zoneMappings:               
        - vSwitchId: vsw-uf6ccg2a9g71hx8go****  # Ganti dengan ID vSwitch Anda.
        - vSwitchId: vsw-uf6nun9tql5t8nh15****  # Ganti dengan ID vSwitch Anda.
      listeners:
        - port: 80
          protocol: HTTP
  2. Buat AlbConfig.

    kubectl apply -f alb.yaml
  3. Periksa resource AlbConfig.

    kubectl get AlbConfig alb

    Output yang diharapkan:

    NAME   ALBID        DNSNAME                                  PORT&PROTOCOL   CERTID   AGE
    alb    alb-******   alb-******.<regionID>.alb.aliyuncs.com                            60s
    Catatan

    Konten ditampilkan di PORT&PROTOCOL dan CERTID hanya setelah Anda membuat listener HTTPS dan mengonfigurasi sertifikat untuknya. Wajar jika bidang-bidang ini kosong.

Membuat IngressClass

  1. Buat file bernama ingress_class.yaml dengan konten berikut untuk membuat IngressClass.

    apiVersion: networking.k8s.io/v1
    kind: IngressClass
    metadata:
      name: alb
    spec:
      controller: ingress.k8s.alibabacloud/alb
      parameters:
        apiGroup: alibabacloud.com
        kind: AlbConfig
        name: alb # Nama AlbConfig yang dikaitkan dengan IngressClass.
  2. Buat IngressClass.

    kubectl apply -f ingress_class.yaml

Membuat ALB Ingress

  1. Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Network > Ingresses.

  3. Pada halaman Ingresses, pilih namespace yang telah Anda buat, lalu klik Create Ingress. Pada kotak dialog Create Ingress, konfigurasikan Ingress seperti dijelaskan dalam tabel berikut.

    Tabel berikut hanya menjelaskan parameter utama. Untuk informasi selengkapnya tentang parameter dan operasi terkait, seperti mengonfigurasi resolusi DNS, lihat Create an ALB Ingress.

    Parameter

    Deskripsi

    Gateway Type

    Pilih ALB Ingress.

    Name

    Masukkan nama kustom untuk Ingress, misalnya my-albingress.

    IngressClass

    Pilih IngressClass yang telah Anda buat untuk mereferensikan AlbConfig yang sesuai.

    Rules

    • Name: Pilih Service yang telah Anda buat.

    • Port: Pilih port yang akan diekspos untuk Service. Untuk contoh ini, pilih 80.

    Anda dapat mempertahankan nilai default untuk parameter lainnya.

    Setelah pembuatan selesai, pilih Ingresses di panel navigasi kiri untuk memeriksa apakah Ingress berhasil diterapkan. Tunggu sekitar 1 menit, lalu temukan dan salin nama titik akhir DNS ALB dari kolom Endpoint.

Langkah 4: Mengakses aplikasi

Tempelkan nama DNS titik akhir ALB ke browser Anda untuk mengakses aplikasi Nginx.

image

(Opsional) Langkah 5: Membersihkan resource

Resource yang dibuat dalam topik ini mencakup Deployment, Service, AlbConfig, IngressClass, dan ALB Ingress. Jalankan perintah berikut untuk menghapusnya.

Nama resource dalam perintah berikut merupakan contoh. Gantilah dengan nama resource aktual Anda.
kubectl delete deployment my-nginx -n my-nginx-namespace
kubectl delete Service my-nginx-svc -n my-nginx-namespace
kubectl delete Ingress my-albingress -n my-nginx-namespace
kubectl delete AlbConfig alb
kubectl delete IngressClass alb

Dokumen terkait