Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Best practices for Unity remote rendering

Última atualização: Jun 27, 2026

Implante o Unity Render Streaming em nós GPU do ACK para transmitir renderização 3D em tempo real para navegadores, sem necessidade de hardware GPU no lado do cliente.

Pré-requisitos

Verifique se você possui:

  • Um cluster gerenciado ACK com um pool de nós GPU

  • O kubectl configurado para se conectar ao cluster

  • O Unity Editor instalado localmente

  • O Docker instalado localmente para criar imagens de contêiner

Ambiente utilizado neste guia:

Componente

Versão / especificação

Cluster gerenciado ACK

1.22.3-aliyun.1

Sistema operacional do pool de nós

Alibaba Cloud Linux 2.1903

Tipo de instância

ecs.gn6v-c8g1.2xlarge

Docker Engine

19.3.15

Etapa 1: Criar a aplicação Unity Render Streaming

Esta etapa utiliza o Unity Editor 2021.3.2f1c1 para Mac M1 Silicon.

  1. No Unity Editor, abra o Package Manager no menu superior esquerdo.

  2. Pesquise por com.unity.renderstreaming@3.1.0-exp.2 e clique em Add.

  3. Clique em Yes para reiniciar o projeto. Após a reinicialização, o pacote Unity Render Streaming aparece na página do Package Manager.

    Unity Render Streaming package

  4. Na página do Package Manager, role até Samples e clique em Import (1,19 MB). A pasta Assets é atualizada após a importação.

    Assets

  5. Abra as Build Settings no menu superior esquerdo. Defina os campos conforme abaixo, clique em Build e nomeie a saída como mac-linux. Após a compilação, o diretório de saída terá a seguinte aparência:

    Campo

    Valor

    Platform

    Windows, Mac, Linux

    Target Platform

    Linux

    Scenes

    WebBrowserInput

    Build

  6. Baixe o exemplo oficial de servidor web no menu superior esquerdo. Esse servidor gerencia a sinalização WebSocket entre os navegadores e o stream WebRTC da aplicação Unity. Sua aplicação de renderização remota está pronta, composta por um executável Unity e um binário de servidor web. Outras opções de implementação estão descritas em Sobre o Unity Render Streaming.

Etapa 2: Containerizar e implantar a aplicação

Containerizar a aplicação Unity e o servidor web

  1. Crie a imagem da aplicação Unity. Siga as Melhores práticas para aplicações gráficas Linux para obter as etapas de containerização. Utilize uma imagem base unityci/editor compatível com sua versão do Unity Editor — as tags disponíveis encontram-se em unityci/editor no Docker Hub. Este guia usa a tag ubuntu-2021.3.2f1-mac-mono-1.0.1 com pacotes adicionais: vulkan-util, libc++1 e libc++abi1.

  2. Crie a imagem do servidor web. Use o seguinte Dockerfile:

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

Implantar no ACK

  1. Crie um arquivo chamado unity-demo.yaml com o seguinte conteúdo:

    apiVersion: v1
    kind: Pod
    metadata:
      name: unity-demo
      namespace: default
    spec:
      # The Linux web server sample binds WebSocket to 127.0.0.1 only.
      # Use host network mode so browsers can reach it through the node's EIP.
      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 is required for the Unity process to access
          # the GPU device on the host.
          privileged: true
      - image: <your-webserver-image>:<tag>
        name: webserver
        ports:
        - containerPort: 80
          protocol: TCP
      restartPolicy: Always

    Ambos os contêineres compartilham o namespace de rede do Pod. O Unity se conecta ao servidor web em 127.0.0.1:80 via WebSocket; o servidor web aceita conexões do navegador na porta 80.

    Explicação dos campos principais:

    • hostNetwork: true — O exemplo de servidor web vincula-se apenas a 127.0.0.1. O modo de rede do host torna o serviço acessível por meio do endereço IP elástico (EIP) do nó.

    • privileged: true — Necessário para que o contêiner do Unity acesse a GPU do host.

    • nodeName — Fixa o Pod em um nó GPU específico. Substitua <your-gpu-node-name> pelo nome do seu nó.

  2. Aplique o manifesto:

    kubectl apply -f unity-demo.yaml
  3. Verifique se o Pod está em execução:

    kubectl get pod unity-demo

    Saída esperada:

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

    Caso o Pod não esteja em execução, verifique os logs dos contêineres:

    kubectl logs unity-demo -c unity
    kubectl logs unity-demo -c webserver

Etapa 3: Acessar o stream de renderização remota

Caminho de conexão:

Browser -> EIP (port 80) -> web server (WebSocket signaling) -> Unity application (WebRTC stream)

No navegador, acesse EIP:80. Clique em VideoPlayer Sample para iniciar o stream.

Vídeo de demonstração

A qualidade do stream depende da estabilidade da rede.