All Products
Search
Document Center

Container Service for Kubernetes:Praktik terbaik untuk Unity remote rendering

Last Updated:Aug 21, 2026

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

  • kubectl yang 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.

  1. Di Unity Editor, buka Package Manager dari menu kiri atas.

  2. Cari com.unity.renderstreaming@3.1.0-exp.2 dan klik Add.

  3. Klik Yes untuk me-restart proyek. Setelah direstart, paket Unity Render Streaming muncul di halaman Package Manager.

    Unity Render Streaming package

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

    Assets

  5. 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

    Build

  6. 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

  1. Buat gambar aplikasi Unity. Ikuti praktik terbaik aplikasi grafis Linux untuk langkah-langkah pembuatan kontainer. Gunakan gambar dasar unityci/editor yang sesuai dengan versi Unity Editor Anda — tag yang tersedia ada di unityci/editor di Docker Hub. Panduan ini menggunakan ubuntu-2021.3.2f1-mac-mono-1.0.1 dengan paket tambahan: vulkan-util, libc++1, dan libc++abi1.

  2. Buat gambar web server. Gunakan Dockerfile berikut:

    FROM ubuntu:20.04
    WORKDIR /run
    COPY webserver ./
    CMD webserver -w

Deploy ke ACK

  1. Buat file bernama unity-demo.yaml dengan 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: Always

    Kedua kontainer berbagi namespace jaringan Pod. Unity terhubung ke web server di 127.0.0.1:80 melalui WebSocket; web server menerima koneksi browser pada port 80.

    Penjelasan bidang utama:

    • hostNetwork: true — Contoh web server hanya mengikat ke 127.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.

  2. Terapkan manifes:

    kubectl apply -f unity-demo.yaml
  3. Verifikasi bahwa Pod sedang berjalan:

    kubectl get pod unity-demo

    Output yang diharapkan:

    NAME         READY   STATUS    RESTARTS   AGE
    unity-demo   2/2     Running   0          30s

    Jika 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.

Video demo

Kualitas aliran bergantung pada stabilitas jaringan.