Kluster Container Service for Kubernetes (ACK) Auto Mode dioptimalkan untuk elastisitas GPU dan secara otomatis menangani penskalaan serta operasi dasar node GPU. Topik ini menggunakan model Qwen3.5-2B sebagai contoh untuk menunjukkan cara men-deploy layanan inferensi model besar dengan komputasi GPU pada kluster ACK Auto Mode secara cepat.
Prasyarat
Anda telah membuat kluster ACK Auto Mode.
Anda telah membuat kelompok node GPU yang memenuhi syarat dalam mode hosting cerdas.
Langkah 1: Siapkan file model dan mount OSS
Pada langkah ini, Anda menggunakan instans ECS temporary untuk mengunduh file model Qwen3.5-2B dari ModelScope, mengunggahnya ke bucket OSS, lalu mengonfigurasi PersistentVolume (PV) dan PersistentVolumeClaim (PVC) untuk kluster. Memasang model ke kontainer inferensi sebagai volume mencegah pengunduhan berulang saat kontainer dimulai.
Pastikan prasyarat berikut terpenuhi:
Anda telah membuat bucket OSS.
Anda telah menginstal dan mengonfigurasi ossutil pada instans ECS temporary.
1. Unduh model Qwen3.5-2B
Lakukan langkah-langkah berikut pada instans ECS temporary untuk mengunduh file model dari ModelScope.
Instal Git.
# Anda dapat menjalankan yum install git atau apt install git untuk menginstalnya. sudo yum install gitInstal ekstensi Git Large File Storage (LFS).
# Anda dapat menjalankan yum install git-lfs atau apt install git-lfs untuk menginstalnya. sudo yum install git-lfsInisialisasi Git LFS dan clone repositori Qwen3.5-2B dari ModelScope. Perintah ini melewatkan file besar LFS untuk mencegah pengunduhan ganda.
git lfs install GIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/Qwen/Qwen3.5-2B.gitMasuk ke direktori repositori dan tarik file model besar yang dikelola LFS.
cd Qwen3.5-2B/ git lfs pull
2. Unggah file model ke OSS
Buat direktori di bucket OSS untuk menyimpan model.
Ganti
<Your-Bucket-Name>dengan nama bucket Anda yang sebenarnya.ossutil mkdir oss://<Your-Bucket-Name>/models/Qwen3.5-2BUnggah file model lokal ke OSS.
ossutil cp -r ./Qwen3.5-2B oss://<Your-Bucket-Name>/models/Qwen3.5-2B
3. Konfigurasikan volume OSS
Buat PV dan PVC agar Pod dapat memasang direktori model di OSS sebagai volume read-only. Untuk informasi selengkapnya, lihat Use a static volume with ossfs 2.0.
Pilih metode autentikasi (RRSA atau AccessKey) dan siapkan kredensial akses untuk memastikan kluster dapat mengakses sumber daya bucket OSS secara aman.
Contoh ini menggunakan autentikasi AccessKey. Kedua metode memiliki sedikit perbedaan. Untuk informasi selengkapnya, lihat Use a static volume with ossfs 2.0.
Simpan AccessKey Anda sebagai Secret untuk PV.
Ganti
<yourAccessKeyID>dan<yourAccessKeySecret>dengan kredensial Anda yang sebenarnya. Namespace Secret harus sesuai dengan namespace aplikasi.kubectl create -n default secret generic oss-secret --from-literal='akId=<yourAccessKeyID>' --from-literal='akSecret=<yourAccessKeySecret>'Buat PV dan PVC untuk memasang direktori model di OSS sebagai volume read-only. Contoh berikut menggunakan volume statis dengan ossfs 2.0.
Langkah 2: Deploy dan verifikasi layanan inferensi
1. Buat Deployment dan Service
Gunakan framework vLLM untuk men-deploy model Qwen3.5-2B sebagai Deployment dan ekspos sebagai Service LoadBalancer.
Pada halaman ACK Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
Klik Create from YAML dan kirimkan konten YAML berikut.
Setelah Anda mengirimkan YAML, jika kluster tidak memiliki cukup sumber daya GPU, Pod akan masuk ke status
Pending. ACK Auto Mode secara otomatis memicu penskalaan node GPU, membuat node baru, dan menjadwalkan Pod ke node baru setelah diinisialisasi. Tidak diperlukan intervensi manual. Saat Pod memasuki statusRunning, layanan model telah dideploy.Setelah deployment selesai, Anda dapat melihat status aplikasi pada halaman Deployments.
2. Verifikasi layanan inferensi
Ambil alamat IP publik yang diekspos oleh Service.
export EXTERNAL_IP=$(kubectl get svc qwen-2b -o jsonpath='{.status.loadBalancer.ingress[0].ip}') echo ${EXTERNAL_IP}Kirim permintaan inferensi untuk memverifikasi bahwa layanan tersedia.
Ganti
8.XX.XX.89dengan alamat IP publik Anda.curl http://8.XX.XX.89:8000/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "Qwen3.5-2B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Kubernetes" } ] } ], "max_tokens": 200 }'Output yang diharapkan:
{"id":"chatcmpl-98f158cdbbb38087","object":"chat.completion","created":1775043962,"model":"Qwen3.5-2B","choices":[{"index":0,"message":{"role":"assistant","content":"**Kubernetes** is an open-source container orchestration platform that automates deployment, scaling, management, and repair of containerized applications..."},"finish_reason":"length"}],"usage":{"prompt_tokens":14,"total_tokens":214,"completion_tokens":200}}