Deploy Unity Render Streaming pada node GPU ACK untuk melakukan streaming rendering 3D real-time ke browser tanpa memerlukan perangkat keras GPU di sisi klien.
Prasyarat
Pastikan Anda telah memiliki:
-
Kluster ACK yang dikelola dengan kelompok node GPU
-
kubectlyang dikonfigurasi untuk terhubung ke kluster -
Unity Editor yang diinstal secara lokal
-
Docker yang diinstal secara lokal untuk membuat gambar kontainer
Lingkungan yang digunakan dalam panduan ini:
| Komponen | Versi / spesifikasi |
|---|---|
| Kluster ACK yang dikelola | 1.22.3-aliyun.1 |
| Sistem operasi kelompok node | Alibaba Cloud Linux 2.1903 |
| Tipe instance | ecs.gn6v-c8g1.2xlarge |
| Docker Engine | 19.3.15 |
Langkah 1: Membuat aplikasi Unity Render Streaming
Langkah ini menggunakan Unity Editor 2021.3.2f1c1 untuk Mac M1 Silicon.
-
Di Unity Editor, buka Package Manager dari menu kiri atas.
-
Cari
com.unity.renderstreaming@3.1.0-exp.2dan klik Add. -
Klik Yes untuk me-restart proyek. Setelah direstart, paket Unity Render Streaming muncul di halaman Package Manager.

-
Di halaman Package Manager, gulir ke bagian Samples dan klik Import (1,19 MB). Folder Assets diperbarui setelah proses impor.

-
Buka Build Settings dari menu kiri atas. Atur bidang-bidang berikut, lalu klik Build dan beri nama output mac-linux. Setelah proses build selesai, struktur direktori output akan tampak seperti berikut:
Bidang Nilai Platform Windows, Mac, Linux Target Platform Linux Scenes WebBrowserInput 
-
Unduh contoh web server resmi dari menu kiri atas. Web server menangani signaling WebSocket antara browser dan aliran WebRTC dari aplikasi Unity. Aplikasi remote rendering Anda kini lengkap dengan executable Unity dan binary web server. Opsi implementasi lainnya dijelaskan dalam Tentang Unity Render Streaming.
Langkah 2: Menjadikan aplikasi sebagai kontainer dan deploy
Membuat kontainer untuk aplikasi Unity dan web server
-
Buat gambar aplikasi Unity. Ikuti praktik terbaik aplikasi grafis Linux untuk langkah-langkah pembuatan kontainer. Gunakan gambar dasar
unityci/editoryang sesuai dengan versi Unity Editor Anda — tag yang tersedia ada di unityci/editor di Docker Hub. Panduan ini menggunakanubuntu-2021.3.2f1-mac-mono-1.0.1dengan paket tambahan:vulkan-util,libc++1, danlibc++abi1. -
Buat gambar web server. Gunakan Dockerfile berikut:
FROM ubuntu:20.04 WORKDIR /run COPY webserver ./ CMD webserver -w
Deploy ke ACK
-
Buat file bernama
unity-demo.yamldengan konten berikut:apiVersion: v1 kind: Pod metadata: name: unity-demo namespace: default spec: # Contoh web server Linux hanya mengikat WebSocket ke 127.0.0.1. # Gunakan mode jaringan host agar browser dapat mengaksesnya melalui EIP node. hostNetwork: true nodeName: <your-gpu-node-name> containers: - image: <your-unity-image>:<tag> name: unity command: ["/run/mac-linux/mac-linux.x86_64"] securityContext: # privileged: true diperlukan agar proses Unity dapat mengakses # perangkat GPU pada host. privileged: true - image: <your-webserver-image>:<tag> name: webserver ports: - containerPort: 80 protocol: TCP restartPolicy: AlwaysKedua kontainer berbagi namespace jaringan Pod. Unity terhubung ke web server di
127.0.0.1:80melalui WebSocket; web server menerima koneksi browser pada port 80.Penjelasan bidang utama:
-
hostNetwork: true— Contoh web server hanya mengikat ke127.0.0.1. Mode jaringan host memungkinkannya diakses melalui alamat IP elastis (EIP) node. -
privileged: true— Diperlukan agar kontainer Unity dapat mengakses GPU host. -
nodeName— Menempelkan Pod ke node GPU tertentu. Ganti<your-gpu-node-name>dengan nama node Anda.
-
-
Terapkan manifes:
kubectl apply -f unity-demo.yaml -
Verifikasi bahwa Pod sedang berjalan:
kubectl get pod unity-demoOutput yang diharapkan:
NAME READY STATUS RESTARTS AGE unity-demo 2/2 Running 0 30sJika Pod tidak berjalan, periksa log kontainer:
kubectl logs unity-demo -c unity kubectl logs unity-demo -c webserver
Langkah 3: Mengakses aliran remote rendering
Jalur koneksi:
Browser -> EIP (port 80) -> web server (signaling WebSocket) -> aplikasi Unity (aliran WebRTC)
Di browser Anda, buka EIP:80. Klik VideoPlayer Sample untuk memulai aliran.
Kualitas aliran bergantung pada stabilitas jaringan.