Nesta página, você verá como fazer upgrade de maneira segura do Agones para os clusters do Game Servers.
Antes de começar
Antes de começar, recomendamos que você se familiarize com os principais conceitos na Visão geral do Game Servers. Verifique se você também realizou as seguintes tarefas:
- Verifique se você ativou a API Game Services. Ativar a API Game Services
- Escolha um shell com a CLI gcloud instalada ou use um cliente de API:
Acesse o Console do Google Cloud.
No canto superior direito do console, clique no botão Ativar Cloud Shell:
- Crie uma conta de serviço.
- Faça o download de uma chave privada como um arquivo JSON.
-
Set the environment variable
GOOGLE_APPLICATION_CREDENTIALS
to the path of the JSON file that contains your credentials. This variable applies only to your current shell session, so if you open a new session, set the variable again.
Cloud Shell
Para iniciar o Cloud Shell, execute os seguintes passos:
Uma sessão do Cloud Shell é aberta dentro de um quadro inferior no console.
Use esse shell para executar comandos gcloud
.
Shell local
Instale a CLI gcloud.
Verifique se você definiu o projeto padrão desejado para a Google Cloud CLI. Caso contrário, será necessário especificar a sinalização --project
explicitamente para cada comando mais tarde:
gcloud config list project
Caso contrário, execute o seguinte comando para definir um projeto padrão, substituindo PROJECT_ID
pelo ID do projeto que você quer:
gcloud config set project PROJECT_ID
Execute o seguinte comando para verificar a versão da Google Cloud CLI.
O Game Servers requer a versão 306.0.0
ou mais recente da CLI gcloud.
gcloud version
Para atualizar a instalação, execute o seguinte comando:
gcloud components update
curl / PowerShell
Para usar a API REST com curl
ou o Windows PowerShell, faça o
seguinte:
Biblioteca de cliente
O Game Servers do Google Cloud pode ser controlado de maneira programática usando uma biblioteca de cliente. Consulte Visão geral das bibliotecas de cliente para instruções sobre como usar a biblioteca e fazer a autenticação.
Como planejar um upgrade
Recomendamos que você faça upgrades do Agones adicionando novos clusters do Game Servers a um domínio e, em seguida, removendo os antigos. Essa abordagem tem os seguintes benefícios:
- Ela segue as práticas recomendadas pelo projeto Agones para criar um novo cluster ao fazer upgrades sem janelas de manutenção. Essa abordagem evita possíveis problemas relacionados à tentativa de fazer upgrade do Agones enquanto os jogos estiverem em execução no cluster.
- Você não precisa tentar fazer upgrade dos nós do Kubernetes ou do Google Kubernetes Engine no momento. Assim, evita problemas, como aqueles associados à remoção de um nó do serviço.
- É possível testar um número maior de componentes como parte do processo de upgrade, incluindo novas versões do Kubernetes e do Agones, como uma única operação e, em seguida, implementá-lo na produção.
Como planejar upgrades canário
Teste a nova versão do Agones em um ambiente de não produção antes de aplicá-lo à produção. Depois de validar a nova versão do Agones, comece fazendo upgrade de um realm canário em produção. Um upgrade canário é um upgrade aplicado inicialmente a um único ou pequeno número de realms. Com os upgrades canário, você pode testar a nova funcionalidade em uma pequena porcentagem da sua infraestrutura, em vez de implementar uma atualização potencialmente disruptiva em todos os seus realms. Se um upgrade não funcionar, você pode minimizar a interrupção para os usuários e reverter o realm afetado. Se não houver um realm canário, escolha um com o menor tráfego.
Como fazer upgrade
Nesta seção, descrevemos um procedimento de upgrade que faz a transição de uma
alocação GameServer
de um cluster com a versão antiga do Agones para um
cluster com a versão atualizada do Agones. O procedimento de upgrade pressupõe que
você tenha configurado a alocação de vários clusters
no novo cluster.
As etapas a seguir também permitem reverter facilmente para a infraestrutura anterior que você sabe que está em funcionamento na produção, com interrupções mínimas na experiência do jogador:
Crie um novo cluster do mesmo tamanho que o cluster atual.
Instale a nova versão do Agones no novo cluster com uma versão compatível do Kubernetes. Para ver uma lista de versões compatíveis, consulte versões e upgrades.
Registre o novo cluster no realm. Isso cria recursos de frota e escalonador automático semelhantes aos clusters atuais registrados no realm. Depois que as frotas estiverem prontas, algumas sessões de jogos de jogadores correspondentes serão enviadas para o novo cluster.
Depois de verificar a estabilidade do novo cluster que está executando a nova versão do Agones, cancele o registro e exclua o cluster antigo. Quando você cancela o registro e exclui um cluster do Game Servers, as configurações dos servidores, as frotas e as frotas de escalonador automático são deixadas no estado em que se encontram. A única mudança possível no cluster real do Kubernetes é que ele não é mais gerenciado pelo Game Servers e não está mais conectado à alocação de vários clusters. O Game Servers para de enviar novas solicitações de alocação para clusters que não estão registrados.
Para evitar alocações adicionais para o cluster antigo se o endpoint associado for acessado diretamente, remova todos os pods no serviço de alocador do servidor antigo:
kubectl scale --replicas=0 -n agones-system deployment/agones-allocator
Quando não houver mais servidores alocados no cluster, encerre o cluster antigo. Para determinar o número de servidores alocados, execute o seguinte comando, em que namespace é o namespace usado ao registrar o cluster do Kubernetes como um cluster do Game Servers.
kubectl get fleet --namespace namespace NAME SCHEDULING DESIRED CURRENT ALLOCATED READY AGE fleet-1 Packed 10 10 0 10 2d23h
Repita as etapas deste procedimento de upgrade para cada cluster que precisar de um upgrade.