All Products
Search
Document Center

Container Service for Kubernetes:Gunakan ACK untuk men-deploy aplikasi game magic cube dengan cepat

Last Updated:Sep 16, 2026

Alibaba Cloud Container Service for Kubernetes (ACK) adalah layanan berkinerja tinggi untuk mengelola dan menjalankan aplikasi berbasis kontainer di cloud. Tutorial ini memandu Anda melalui proses deployment aplikasi ACK-Cube—game Rubik's cube online—ke kluster ACK Pro yang dikelola dan mengeksposnya ke internet.

Setelah menyelesaikan tutorial ini, Anda akan:

  • Membuat kluster ACK Pro yang dikelola

  • Men-deploy aplikasi ACK-Cube ke kluster tersebut

  • Mengakses game yang sedang berjalan melalui URL publik

2024-12-12_16-00-46 (1)

Prasyarat

Sebelum memulai, pastikan Anda telah:

Langkah 1: Buat kluster

Mode Intelligent Managed dari ACK menyederhanakan pembuatan kluster—konfigurasikan beberapa parameter perencanaan dan ACK akan membuat kluster yang mengikuti praktik terbaik hanya dalam satu klik. Kluster tersebut mencakup kelompok node terkelola cerdas yang siklus hidupnya dikelola secara otomatis oleh ACK. Untuk informasi lebih lanjut, lihat Buat kluster ACK yang dikelola (mode intelligent managed).

Untuk menyesuaikan konfigurasi kluster secara detail, lihat Buat kluster ACK yang dikelola.
  1. Login ke ACK consoleACK consoleACK consoleACK console. Pada halaman Clusters, klik Create Kubernetes Cluster.

  2. Pada halaman yang muncul, klik tab ACK Managed Cluster dan aktifkan Intelligent Managed. Untuk mengakses kluster melalui internet, pilih Expose API Server With EIP. Klik Confirm Configurations, tinjau pilihan Anda, lalu klik Create Cluster. Pembuatan kluster memerlukan beberapa menit. Tunggu hingga status kluster menunjukkan Running sebelum melanjutkan.

    image

Langkah 2: Deploy aplikasi

Aplikasi ACK-Cube menggunakan gambar kontainer publik. Untuk menariknya, kluster harus memiliki akses internet. Sebelum melakukan deployment, pilih salah satu opsi berikut:

Kemudian pilih metode deployment Anda:

  • Deployment melalui konsol: Deploy dan ekspos aplikasi melalui antarmuka UI ACK console.

  • Deployment melalui kubectl: Hubungkan ke kluster menggunakan CloudShell, Workbench, atau klien kubectl lokal, lalu deploy menggunakan manifes YAML.

Opsi A: Deployment melalui konsol

Deploy dan ekspos aplikasi

Bagian ini menunjukkan cara membuat Deployment untuk game ACK-Cube dan mengeksposnya ke internet menggunakan Service. Untuk daftar lengkap parameter Deployment, lihat Buat aplikasi tanpa status menggunakan Deployment.

  1. Pada halaman Clusters, klik nama kluster Anda (misalnya, ACK-Demo).

  2. Di panel navigasi kiri, pilih Workloads > Deployments.

  3. Di pojok kanan atas, klik Create from Image.

  4. Pada tab Basic Information, atur nama aplikasi menjadi ack-cube.

  5. Klik Next. Pada tab Container, atur parameter berikut:

    Parameter

    Description

    Contoh nilai

    Image Name

    Gambar kontainer yang akan dideploy.

    registry.cn-hangzhou.aliyuncs.com/acr-toolkit/ack-cube:1.0

    Resource Limit

    CPU dan memori maksimum yang dapat dikonsumsi aplikasi.

    CPU: 1 Core, Memory: 1024 MiB. Biarkan Ephemeral Storage kosong.

    Required Resources

    CPU dan memori yang dicadangkan untuk aplikasi.

    CPU: 0.5 Core, Memory: 512 MiB. Biarkan Ephemeral Storage kosong.

    Port

    Pengaturan port kontainer.

    Name: ack-cube, Container Port: 80, Protocol: TCP

  6. Klik Next. Pada tab Advanced, klik Create di bagian Services. Di kotak dialog Create Service, atur parameter berikut lalu klik OK.

    Parameter

    Description

    Contoh nilai

    Name

    Nama Service.

    ack-cube-svc

    Type

    Cara mengakses Service.

    Pilih Server Load Balancer > Classic Load Balancer (CLB) > Create Resource. Pertahankan pengaturan CLB default untuk lingkungan pengujian ini.

    Port

    Port Service dan port kontainer. Port kontainer harus sesuai dengan Pod backend.

    Service Port: 80, Container Port: 80, Protocol: TCP

    Pilih Local untuk External Traffic Policy.

  7. Klik Create. Halaman sukses akan muncul dengan daftar objek aplikasi. Klik View Details untuk meninjaunya.

Akses aplikasi

Login ke ACK consoleACK consoleACK consoleACK console. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, pilih Workloads > Deployments. Temukan aplikasi ack-cube di namespace default. Klik tab Access Method, temukan Service ack-cube-svc, lalu klik tautan di kolom External Endpoint untuk membuka game Rubik's cube.

Opsi B: Deployment melalui kubectl

Hubungkan ke kluster

Hubungkan ke kluster ACK Anda menggunakan salah satu metode berikut:

CloudShell

CloudShell menyediakan lingkungan Linux berbasis browser dengan tool pra-instal tanpa biaya. Saat CloudShell dimulai, sistem akan menyediakan mesin virtual Linux untuk Anda. Anda dapat menggunakannya bersama Web IDE CloudShell untuk mengelola sumber daya cloud Anda.

Masuk ke Konsol ACKKonsol ACKKonsol ACKKonsol ACK. Di panel navigasi kiri, klik kluster target Anda. Di halaman Cluster Information, pilih Basic Information > Open Cloud Shell. Setelah beberapa detik, antarmuka CloudShell akan dimulai dan kubectl siap digunakan. Untuk informasi selengkapnya, lihat Menggunakan kubectl di Workbench atau Cloud Shell untuk terhubung ke kluster ACK.

Workbench

Workbench adalah alat koneksi jarak jauh berbasis browser yang tidak memerlukan instalasi perangkat lunak tambahan.

Masuk ke Konsol ACKKonsol ACKKonsol ACKKonsol ACK. Di panel navigasi kiri, klik kluster target Anda. Di halaman Cluster Information, pilih Basic Information > Manage Clusters Using Workbench. Setelah beberapa detik, antarmuka Workbench akan dimulai. Untuk informasi selengkapnya, lihat Sambungkan ke instans menggunakan Workbench.

kubectl client

Gunakan klien kubectl lokal untuk terhubung melalui internet.

  1. Instal dan atur kubectl.

  2. Login ke ACK consoleACK consoleACK consoleACK console. Klik nama kluster Anda (misalnya, ACK-Demo). Pada halaman Cluster Information, klik tab Connection Information. Salin kredensial dari tab Public Access dan tempelkan ke $HOME/.kube/config. Buat direktori .kube dan file config jika belum ada. Untuk informasi lebih lanjut, lihat Dapatkan file kubeconfig kluster dan gunakan kubectl untuk menghubungkan ke kluster.

  3. Jalankan perintah berikut untuk memverifikasi koneksi:

    kubectl get namespace

    Output yang diharapkan:

    NAME              STATUS   AGE
    arms-prom         Active   4h39m
    default           Active   4h39m
    kube-node-lease   Active   4h39m
    kube-public       Active   4h39m
    kube-system       Active   4h39m

Deploy dan ekspos aplikasi

Bagian ini menjelaskan cara menggunakan kubectl untuk men-deploy workload tanpa status (Deployment) di kluster ACK Anda dan mengeksposnya menggunakan Service bertipe LoadBalancer. Semua contoh menggunakan manifes YAML yang diterapkan dengan kubectl apply. Deployment menjalankan dua replika ACK-Cube, dan Service mengeksposnya melalui tipe LoadBalancer yang secara otomatis menyediakan instance Server Load Balancer (SLB). Untuk informasi lebih lanjut tentang mengekspos aplikasi, lihat Gunakan instance SLB yang dibuat secara otomatis untuk mengekspos aplikasi.

  1. Buat file bernama ack-cube.yaml dengan konten berikut:

    apiVersion: apps/v1 # untuk versi sebelum 1.8.0 gunakan apps/v1beta1
    kind: Deployment
    metadata:
      name: ack-cube # Nama aplikasi.
      labels:
        app: ack-cube
    spec:
      replicas: 2 # Jumlah pod yang direplikasi.
      selector:
        matchLabels:
          app: ack-cube  # Anda harus menentukan nilai yang sama untuk selector Service yang digunakan untuk mengekspos aplikasi.
      template:
        metadata:
          labels:
            app: ack-cube
        spec:
          containers:
          - name: ack-cube
            image: registry.cn-hangzhou.aliyuncs.com/acr-toolkit/ack-cube:1.0 # Ganti dengan alamat gambar yang ingin Anda gunakan dalam format <image_name:tags>.
            ports:
            - containerPort: 80 # Port kontainer yang ingin Anda ekspos.
            resources:
              limits: # Batas sumber daya.
                cpu: '1'
                memory: 1Gi
              requests: # Permintaan sumber daya.
                cpu: 500m
                memory: 512Mi
  2. Deploy aplikasi:

    kubectl apply -f ack-cube.yaml
  3. Verifikasi bahwa Deployment sedang berjalan:

    kubectl get deployment ack-cube

    Output yang diharapkan:

    NAME       READY   UP-TO-DATE   AVAILABLE   AGE
    ack-cube   2/2     2            2           96s
  4. Buat file bernama ack-cube-svc.yaml dengan konten berikut. Nilai selector harus sesuai dengan nilai matchLabels di ack-cube.yaml (app: ack-cube) untuk mengaitkan Service dengan aplikasi backend.

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: ack-cube
      name: ack-cube-svc
      namespace: default
    spec:
      ports:
      - port: 80
        protocol: TCP
        targetPort: 80
      selector:
        app: ack-cube # Anda harus menentukan nilai parameter matchLabels dalam file YAML yang digunakan untuk membuat Deployment.
      type: LoadBalancer
  5. Buat Service untuk mengekspos aplikasi. Membuat Service LoadBalancer secara otomatis menyediakan instance SLB yang menghadap publik.

    kubectl apply -f ack-cube-svc.yaml
  6. Konfirmasi Service sedang berjalan dan dapatkan alamat IP publik. Proses ini mungkin memerlukan waktu sekitar satu menit selama instance SLB disediakan.

    kubectl get svc ack-cube-svc

    Output yang diharapkan:

    NAME           TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)        AGE
    ack-cube-svc   LoadBalancer   172.16.72.161   47.94.xx.xx   80:31547/TCP   32s
  7. Masukkan alamat EXTERNAL-IP (misalnya, 47.94.xx.xx) di browser Anda untuk mengakses game Rubik's cube.

Langkah 3: Bersihkan sumber daya (opsional)

Biaya kluster ACK mencakup biaya manajemen kluster yang dikenakan oleh ACK dan biaya untuk sumber daya Alibaba Cloud lainnya yang digunakan.

Untuk menghapus kluster, login ke ACK consoleACK consoleACK consoleACK console. Pada halaman Clusters, temukan kluster Anda, klik More di kolom Actions, lalu pilih Delete. Pada halaman Delete Cluster And Associated Resources, pilih sumber daya yang akan dihapus lalu klik Delete. Untuk informasi lebih lanjut, lihat Hapus kluster.

Penting

Kluster Intelligent Managed memiliki Deletion Protection yang diaktifkan secara default. Nonaktifkan fitur ini sebelum menghapus kluster.

Lanjutan

  • Auto-scaling: Jika workload Anda memiliki kebutuhan sumber daya yang tidak dapat diprediksi atau bervariasi—umum pada aplikasi web, layanan game, atau platform pendidikan daring—konfigurasikan auto-scaling baik untuk workload maupun sumber daya kluster. Lihat Ikhtisar auto scaling.

  • Routing Lapisan 7: Untuk mengelola aturan routing HTTP/HTTPS di berbagai layanan, gunakan Ingress alih-alih Service. Lihat Manajemen Ingress.

  • Observabilitas: Pantau infrastruktur kluster, kinerja aplikasi, dan metrik bisnis untuk melacak kesehatan sistem serta mendiagnosis masalah. Lihat Ikhtisar sistem observabilitas.