menu
arrow_back

Cómo ejecutar servidores dedicados para juegos en Google Kubernetes Engine

Cómo ejecutar servidores dedicados para juegos en Google Kubernetes Engine

1 hora 30 minutos 9 créditos

GSP133

Labs de autoaprendizaje de Google Cloud

La idea de empaquetar aplicaciones de servidor como contenedores está ganando rápidamente terreno en el rubro tecnológico, y las empresas de videojuegos no son la excepción. A muchas empresas de videojuegos les interesa utilizar contenedores para mejorar el uso de VM y aprovechar su paradigma de tiempo de ejecución aislado. Pese al gran interés, muchas empresas no saben por dónde empezar.

En este lab, se le mostrará cómo usar una arquitectura extensible a fin de ejecutar un servidor dedicado para juegos de multijugador en tiempo real y basado en sesiones con Kubernetes en Google Kubernetes Engine. Se configura un proceso de administrador de escalamiento para iniciar y detener automáticamente las instancias de máquina virtual, según sea necesario. La configuración de las máquinas como nodos de Kubernetes se controla automáticamente mediante grupos de instancias administrados. La estructura de juego en línea que se presenta en este lab es intencionalmente simple, y las partes en las que la complejidad podría resultar útil o necesaria se indican según corresponda.

Objetivos

  • Crear una imagen de contenedor de un servidor dedicado para juegos (DGS) popular de código abierto en Linux con Docker. Esta imagen de contenedor agrega solo los objetos binarios y las bibliotecas necesarias a una imagen base de Linux

  • Guardar los recursos en un volumen de disco persistente independiente de solo lectura y activarlos en el contenedor durante el tiempo de ejecución

  • Establecer y configurar los procesos básicos del programador con las API de Kubernetes y Google Cloud a fin de que los nodos se inicien y detengan para satisfacer la demanda

Antes de comenzar, inicie la descarga del cliente de juego

En este lab, creará un servidor de juegos y, para probar el servidor, deberá conectarse a un cliente de juego. El cliente de juego OpenArena está disponible en muchos sistemas operativos, siempre y cuando pueda instalarlo en la máquina local. Si no puede instalar un cliente de juego en la máquina que está utilizando, considere usar este lab en una máquina en la que se pueda instalar un cliente de juego. No es necesario conectarse a un cliente de juego para validar el trabajo; puede optar por no hacerlo. Si usa este lab, se le seguirá mostrando cómo crear un servidor dedicado para juegos y no podrá confirmar si funciona.

Instale el cliente de juego OpenArena en su computadora para probar la conexión con el servidor de juegos al final del lab:

http://openarena.wikia.com/wiki/Manual/Install

Esto podría demorar un tiempo. Comience a trabajar en el lab mientras lo descarga y vuelva a revisar en aproximadamente 30 minutos para ver si finalizó. Luego, instale el cliente de juego.

Descripción general de la arquitectura

En la descripción general de la infraestructura de juegos en Cloud, se analizan los componentes de alto nivel comunes a muchas arquitecturas de juegos en línea. En este lab, implementará un servicio de frontend del clúster de DGS perteneciente a Kubernetes y un servicio de backend de administrador del escalamiento. Una infraestructura de juegos de producción completa también incluirá muchos otros servicios de frontend y backend que están fuera del alcance de esta solución.

68b111517057146c.png

Restricciones constructivas

A fin de ofrecer un ejemplo que sea lo suficientemente informativo y fácil de adaptar, en este lab, se suponen las siguientes restricciones de juego:

  • Este es un juego en tiempo real basado en partidas con un DGS autorizado que simula el estado del juego.
  • El DGS se comunica a través de UDP.
  • Cada proceso de DGS ejecuta una partida.
  • Todos los procesos de DGS generan aproximadamente la misma cantidad de carga.
  • Las partidas tienen una duración máxima.
  • El tiempo de inicio del DGS es insignificante y no se requiere una preparación previa del proceso del servidor dedicado para juegos.
  • El impacto que genera la experiencia del cliente se debe evitar tanto como sea posible.
  • Una vez transcurrido el tiempo máximo, las partidas no se deben finalizar antes de tiempo para reducir la cantidad de instancias de VM.
  • Sin embargo, si el proceso del servidor dedicado para juegos detecta un problema y no puede continuar, el estado de la partida se pierde y se espera que el usuario se una a una partida nueva.
  • El proceso de DGS carga los recursos estáticos del disco, pero no requiere acceso de escritura a los recursos.

Todas estas restricciones tienen precedentes dentro de la industria del juego y representan un caso práctico en el mundo real.

Configuración y requisitos

Configuración de Qwiklabs

Antes de hacer clic en el botón Comenzar lab

Lea estas instrucciones. Los labs tienen un tiempo límite; no puede ponerlos en pausa. El cronómetro, que comienza a funcionar cuando hace clic en Comenzar lab, indica por cuánto tiempo estarán los recursos en la nube a su disposición.

Este lab práctico de Qwiklabs le permitirá llevar a cabo las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, recibe nuevas credenciales temporales que utilizará para acceder a Google Cloud Platform durante el transcurso del lab.

Lo que necesita

Para completar este lab, necesitará lo siguiente:

  • Acceso a un navegador de Internet estándar. Se recomienda el navegador Chrome
  • Tiempo para completar el lab

Nota: Si ya tiene un proyecto o una cuenta personal de GCP, no los use para este lab.

Cómo iniciar su lab y acceder a Console

  1. Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su forma de pago. En la parte izquierda, verá un panel con las credenciales temporales que debe usar para este lab.

    Abrir Google Console

  2. Copie el nombre de usuario y, luego, haga clic en Abrir Google Console. El lab inicia los recursos y abre otra pestaña que muestra la página Seleccione una cuenta.

    Sugerencia: Abra las pestañas en ventanas separadas, una junto a la otra.

  3. En la página Seleccione una cuenta, haga clic en Usar otra cuenta.

    Elegir una cuenta

  4. Se abrirá la página de acceso. Pegue el nombre de usuario que copió del panel Detalles de conexión. Luego, copie y pegue la contraseña.

    Importante: Debe usar las credenciales del panel Detalles de conexión. No use sus credenciales de Qwiklabs. Si tiene una cuenta propia de GCP, no la use para este lab (evite incurrir en cargos).

  5. Avance por las siguientes páginas haciendo clic en ellas:

    • Acepte los Términos y Condiciones.
    • No agregue opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No se registre para obtener pruebas gratuitas.

Después de un momento, se abrirá GCP Console en esta pestaña.

Active Google Cloud Shell

Google Cloud Shell es una máquina virtual que cuenta con herramientas de desarrollo. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Google Cloud Shell proporciona acceso de línea de comandos a sus recursos de GCP.

  1. En GCP Console, en la barra de herramientas superior derecha, haga clic en el botón Abrir Cloud Shell.

    Ícono de Cloud Shell

  2. Haga clic en Continue (Continuar):

    cloudshell_continue

Toma unos minutos aprovisionar y conectarse con el entorno. Cuando está conectado, ya está autenticado y el proyecto está configurado en su PROJECT_ID . Por ejemplo:

Terminal de Cloud Shell

gcloud es la herramienta de línea de comandos para Google Cloud Platform. Viene preinstalada en Cloud Shell y es compatible con la función “tab-completion”.

Puede mostrar el nombre de la cuenta activa con este comando:

gcloud auth list

Resultado:

Credentialed accounts:
- <myaccount>@<mydomain>.com (active)
	

Resultado de ejemplo:

Credentialed accounts:
- google1623327_student@qwiklabs.net
	

Puede mostrar el ID del proyecto con este comando:

gcloud config list project
	

Resultado:

[core]
project = <project_ID>
	

Resultado de ejemplo:

[core]
project = qwiklabs-gcp-44776a13dea667a6
	

Únase a Qwiklabs para leer este lab completo… y mucho más.

  • Obtenga acceso temporal a Google Cloud Console.
  • Más de 200 labs para principiantes y niveles avanzados.
  • El contenido se presenta de a poco para que pueda aprender a su propio ritmo.
Únase para comenzar este lab
Puntuación

—/100

Create a VM instance

Ejecutar paso

/ 20

Generate a new container image

Ejecutar paso

/ 10

Generate an assets disk

Ejecutar paso

/ 20

Creating a Kubernetes cluster on Container Engine

Ejecutar paso

/ 20

Configuring the assets disk in Kubernetes

Ejecutar paso

/ 10

Setting up the scaling manager

Ejecutar paso

/ 10

Configure the Openarena Scaling Manager Deployment File

Ejecutar paso

/ 5

Testing the setup

Ejecutar paso

/ 5