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

Prasyarat
Sebelum memulai, pastikan Anda telah:
Memiliki Akun Alibaba Cloud dengan izin yang diperlukan untuk mengaktifkan ACK dan membuat kluster
Menyelesaikan aktivasi layanan dan otorisasi untuk ACK. Lihat Buat kluster ACK yang dikelola dengan cepat untuk proses penyiapan lengkap.
Meninjau informasi penagihan untuk kluster ACK dan sumber daya terkait
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.
Login ke ACK consoleACK consoleACK consoleACK console. Pada halaman Clusters, klik Create Kubernetes Cluster.
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.

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:
Aktifkan kluster ACK yang sudah ada agar dapat mengakses Internet: Buat gerbang NAT internet di virtual private cloud (VPC) tempat kluster dideploy. Hal ini secara otomatis memberikan akses internet ke semua sumber daya kluster.
Tetapkan Alamat IP publik statis ke setiap node dalam kluster.
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.
Pada halaman Clusters, klik nama kluster Anda (misalnya,
ACK-Demo).Di panel navigasi kiri, pilih Workloads > Deployments.
Di pojok kanan atas, klik Create from Image.
Pada tab Basic Information, atur nama aplikasi menjadi
ack-cube.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.0Resource 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: TCPKlik 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-svcType
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: TCPPilih Local untuk External Traffic Policy.
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.
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.kubedan fileconfigjika belum ada. Untuk informasi lebih lanjut, lihat Dapatkan file kubeconfig kluster dan gunakan kubectl untuk menghubungkan ke kluster.Jalankan perintah berikut untuk memverifikasi koneksi:
kubectl get namespaceOutput 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.
Buat file bernama
ack-cube.yamldengan 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: 512MiDeploy aplikasi:
kubectl apply -f ack-cube.yamlVerifikasi bahwa Deployment sedang berjalan:
kubectl get deployment ack-cubeOutput yang diharapkan:
NAME READY UP-TO-DATE AVAILABLE AGE ack-cube 2/2 2 2 96sBuat file bernama
ack-cube-svc.yamldengan konten berikut. Nilaiselectorharus sesuai dengan nilaimatchLabelsdiack-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: LoadBalancerBuat Service untuk mengekspos aplikasi. Membuat Service
LoadBalancersecara otomatis menyediakan instance SLB yang menghadap publik.kubectl apply -f ack-cube-svc.yamlKonfirmasi 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-svcOutput 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 32sMasukkan 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.
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.