O Cloud Code permite que você execute facilmente seu aplicativo em um
cluster do Kubernetes e visualize-o ao vivo, aproveitando skaffold dev
.
É possível executar o aplicativo em um cluster local (como Minikube ou Docker Desktop), Google Kubernetes Engine ou qualquer outro provedor de nuvem.
Como executar o aplicativo
- Selecione o comando Executar no Kubernetes usando a barra de status do Cloud Code.
- Se o aplicativo não tiver a configuração de skaffold necessária ou a configuração de lançamento
cloudcode.kubernetes
, o Cloud Code ajudará você a configurá-los. - Confirme se você quer usar o contexto do Kubernetes atual para executar o app (ou mudar para um preferencial).
Se o contexto escolhido for de um cluster remoto, você será solicitado a fornecer um registro de imagem para enviar as imagens.
Veja alguns exemplos de como especificar onde as imagens de contêiner são armazenadas para alguns registros comuns:
Docker Hub docker.io/{account}
Verifique se você está autenticado corretamente se estiver usando um repositório particular do Docker Hub.Google Container Repository (GCR) gcr.io/{project_id} O Cloud Code concatena esse registro de imagem com o nome da imagem especificado nos manifestos do Kubernetes para gerar o nome final do repositório de imagens.
Para mais informações, consulte o guia de tratamento de registro de imagem.
Esta escolha é armazenada na configuração de inicialização do
cloudcode.kubernetes
(encontrada em .vscode/launch.json).O Cloud Code, em seguida, cria os contêineres, os envia para o registro, aplica as configurações do Kubernetes ao cluster e aguarda o lançamento.
Após a conclusão do lançamento, o Cloud Code encaminha automaticamente todas as portas de contêiner declaradas à sua máquina e exibe os URLs na janela de saída para que seja possível procurar seu aplicativo ativo.
Por padrão, o Cloud Code monitora continuamente o sistema de arquivos em busca de alterações nos arquivos (seja a configuração ou o código do Kubernetes), recria os contêineres e reimplanta o aplicativo no cluster. Assim, suas edições serão refletidas quase em tempo real. É possível alterar esse comportamento usando a sinalização
watch
na sua configuração de inicialização.Após a conclusão da sessão, outras opções de menu contextual estarão disponíveis para monitorar o aplicativo e os recursos dele por meio da barra de status do Cloud Code, incluindo:
- Abrir registros de implantação: abra os registros do aplicativo de uma implantação específica com o visualizador de registros do Cloud Code
- Abrir o URL do serviço: abre o URL do serviço de aplicativo de um serviço específico em um navegador da Web.
Ativar/desativar o modo de exibição: alternar o modo de exibição para a sessão atual (não disponível para sessões de depuração).
Para interromper a execução do aplicativo, clique no ícone de parada na Barra de ferramentas de depuração.
Após o encerramento do aplicativo, todos os recursos implantados do Kubernetes serão excluídos do cluster. É possível alterar esse comportamento usando a sinalização
cleanUp
na configuração de inicialização.
Como personalizar a configuração de inicialização
Para configurar como o aplicativo é executado, personalize o conteúdo de skaffold.yaml,
bem como especifique os seguintes campos na configuração cloudcode.kubernetes
no .vscode/launch.json
:
- skaffoldConfig: especifica o arquivo de configuração do skaffold que contém as definições de criação e implantação.
- profile: especifica seu perfil Skaffold preferido. Se não for definido, o perfil padrão será usado.
- imageRegistry: especifica o registro de imagens para onde as imagens serão enviadas.
- smartwatch: monitora as alterações no espaço de trabalho e executa novamente o aplicativo. A menos que seja explicitamente definido como falso, verdadeiro por padrão.
- cleanUp: exclui os recursos do Kubernetes implantados no cluster após o encerramento do aplicativo. A menos que seja explicitamente definido como falso, verdadeiro por padrão.
- portForward: encaminha portas para recursos expostos do Kubernetes no cluster para a máquina local. A menos que seja explicitamente definido como falso, verdadeiro por padrão.