O Alibaba Cloud Container Service for Kubernetes (ACK) é um serviço de alto desempenho para gerenciar e executar aplicativos conteinerizados na nuvem. Este tutorial orienta você na implantação do ACK-Cube — um jogo online de cubo mágico — em um cluster ACK Pro gerenciado e na sua exposição à internet.
Ao concluir este tutorial, você terá:
Criado um cluster ACK Pro gerenciado
Implantado o aplicativo ACK-Cube no cluster
Acessado o jogo em execução por meio de uma URL pública

Pré-requisitos
Antes de começar, verifique se você possui:
Uma conta Alibaba Cloud com as permissões necessárias para ativar o ACK e criar clusters
Concluído a ativação do serviço e a autorização para o ACK. Consulte Criar rapidamente um cluster gerenciado pelo ACK para obter o processo completo de configuração.
Revisado as informações de faturamento dos clusters ACK e dos recursos associados
Etapa 1: Criar um cluster
O modo Gerenciado Inteligente do ACK simplifica a criação de clusters: basta configurar alguns parâmetros de planejamento e o ACK cria um cluster seguindo as melhores práticas com um único clique. O cluster inclui um pool de nós gerenciado inteligentemente, cujo ciclo de vida o ACK gerencia automaticamente. Para mais informações, consulte Criar um cluster gerenciado pelo ACK (modo gerenciado inteligente).
Para personalizar configurações detalhadas do cluster, consulte Criar um cluster gerenciado pelo ACK .
-
Faça logon no console do ACKconsole do ACKconsole do ACKconsole do ACK. Na página Clusters, clique em Create Kubernetes Cluster.

-
Na página exibida, clique na aba ACK Managed Cluster e ative a opção Intelligent Managed. Para acessar o cluster pela internet, selecione Expose API Server With EIP. Clique em Confirm Configurations, revise suas seleções e clique em Create Cluster. A criação do cluster leva alguns minutos. Aguarde até que o status do cluster seja exibido como Running antes de prosseguir.

Etapa 2: Implantar o aplicativo
O aplicativo ACK-Cube utiliza uma imagem de contêiner pública. Para baixar essa imagem, o cluster precisa ter acesso à internet. Antes de implantar, escolha uma das opções abaixo:
Habilitar o acesso à Internet em um cluster ACK existente: Crie um gateway NAT de internet na Virtual Private Cloud (VPC) onde o cluster está implantado. Isso concede acesso automático à internet para todos os recursos do cluster.
Atribua um endereço IP público estático a cada nó do cluster.
Em seguida, escolha o método de implantação:
Implantação via console: Implante e exponha o aplicativo pela interface do console do ACK.
Implantação via kubectl: Conecte-se ao cluster usando CloudShell, Workbench ou um cliente kubectl local e implante o aplicativo com manifestos YAML.
Opção A: Implantação via console
Implantar e expor o aplicativo
Esta seção demonstra como criar um Deployment para o jogo ACK-Cube e expô-lo à internet usando um Service. Para a lista completa de parâmetros de Deployment, consulte Criar um aplicativo stateless usando um Deployment.
Na página Clusters, clique no nome do seu cluster (por exemplo,
ACK-Demo).No painel de navegação à esquerda, escolha Workloads > Deployments.
No canto superior direito, clique em Create from Image.
Na aba Basic Information, defina o nome do aplicativo como
ack-cube.-
Clique em Next. Na aba Container, configure os seguintes parâmetros:
Parâmetro
Descrição
Valor de exemplo
Image Name
A imagem de contêiner a ser implantada.
registry.cn-hangzhou.aliyuncs.com/acr-toolkit/ack-cube:1.0Resource Limit
O limite máximo de CPU e memória que o aplicativo pode consumir.
CPU: 1 Core, Memory: 1024 MiB. Deixe Ephemeral Storage em branco.
Required Resources
A quantidade de CPU e memória reservada para o aplicativo.
CPU: 0,5 Core, Memory: 512 MiB. Deixe Ephemeral Storage em branco.
Port
As configurações de porta do contêiner.
Name:
ack-cube, Container Port:80, Protocol: TCP
-
Clique em Next. Na aba Advanced, clique em Create na seção Services. Na caixa de diálogo Create Service, defina os parâmetros abaixo e clique em OK.
Parâmetro
Descrição
Valor de exemplo
Name
O nome do Service.
ack-cube-svcType
A forma de acesso ao Service.
Selecione Server Load Balancer > Classic Load Balancer (CLB) > Create Resource. Mantenha as configurações padrão do CLB para este ambiente de teste.
Port
A porta do Service e a porta do contêiner. A porta do contêiner deve corresponder à do Pod de backend.
Service Port:
80, Container Port:80, Protocol: TCP
-
Clique em Create. Uma página de sucesso será exibida com os objetos do aplicativo listados. Clique em View Details para revisá-los.

Acessar o aplicativo
Faça logon no console do ACKconsole do ACKconsole do ACKconsole do ACK. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, escolha Workloads > Deployments. Localize o aplicativo ack-cube no namespace default. Clique na aba Access Method, encontre o Service ack-cube-svc e clique no link na coluna External Endpoint para abrir o jogo do cubo mágico.

Opção B: Implantação via kubectl
Conectar-se ao cluster
Conecte-se ao seu cluster ACK usando um dos métodos a seguir:
CloudShell
O CloudShell oferece um ambiente Linux baseado em navegador com ferramentas pré-instaladas, sem custo adicional. Ao iniciar o CloudShell, uma máquina virtual Linux é provisionada para você. É possível utilizá-lo junto com a Web IDE do CloudShell para gerenciar seus recursos na nuvem.
Faça logon no console do ACKconsole do ACKconsole do ACKconsole do ACK. No painel de navegação à esquerda, clique no cluster desejado. Na página Cluster Information, escolha Basic Information > Open Cloud Shell. Após alguns segundos, a interface do CloudShell inicia e o kubectl fica pronto para uso. Para mais informações, consulte Usar kubectl no Workbench ou Cloud Shell para conectar-se a clusters ACK.
Workbench
O Workbench é uma ferramenta de conexão remota baseada em navegador que não exige instalação de software adicional.
Faça logon no console do ACKconsole do ACKconsole do ACKconsole do ACK. No painel de navegação à esquerda, clique no cluster desejado. Na página Cluster Information, escolha Basic Information > Manage Clusters Using Workbench. Após alguns segundos, a interface do Workbench inicia. Para mais informações, consulte Conectar-se a uma instância usando o Workbench.
kubectl client
Use um cliente kubectl local para estabelecer conexão via internet.
Faça logon no console do ACKconsole do ACKconsole do ACKconsole do ACK. Clique no nome do seu cluster (por exemplo,
ACK-Demo). Na página Cluster Information, clique na aba Connection Information. Copie as credenciais da aba Public Access e cole-as em$HOME/.kube/config. Crie o diretório.kubee o arquivoconfigcaso ainda não existam. Para mais informações, consulte Obter o arquivo kubeconfig de um cluster e usar kubectl para conectar-se ao cluster.-
Execute o comando abaixo para verificar a conexão:
kubectl get namespaceSaída esperada:
NAME STATUS AGE arms-prom Active 4h39m default Active 4h39m kube-node-lease Active 4h39m kube-public Active 4h39m kube-system Active 4h39m
Implantar e expor o aplicativo
Esta seção explica como usar o kubectl para implantar uma carga de trabalho stateless (um Deployment) no seu cluster ACK e expô-la utilizando um Service do tipo LoadBalancer. Todos os exemplos utilizam manifestos YAML aplicados com kubectl apply. O Deployment executa duas réplicas do ACK-Cube, e o Service o expõe por meio do tipo LoadBalancer, que provisiona automaticamente uma instância de Server Load Balancer (SLB). Para mais detalhes sobre como expor aplicativos, consulte Usar uma instância SLB criada automaticamente para expor um aplicativo.
-
Crie um arquivo chamado
ack-cube.yamlcom o seguinte conteúdo:apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1 kind: Deployment metadata: name: ack-cube # The name of the application. labels: app: ack-cube spec: replicas: 2 # The number of replicated pods. selector: matchLabels: app: ack-cube # You must specify the same value for the selector of the Service that is used to expose the application. template: metadata: labels: app: ack-cube spec: containers: - name: ack-cube image: registry.cn-hangzhou.aliyuncs.com/acr-toolkit/ack-cube:1.0 # Replace with the address of the image that you want to use in the <image_name:tags> format. ports: - containerPort: 80 # The container port that you want to expose. resources: limits: # The resource limits. cpu: '1' memory: 1Gi requests: # The resource requests. cpu: 500m memory: 512Mi -
Implante o aplicativo:
kubectl apply -f ack-cube.yaml -
Verifique se o Deployment está em execução:
kubectl get deployment ack-cubeSaída esperada:
NAME READY UP-TO-DATE AVAILABLE AGE ack-cube 2/2 2 2 96s -
Crie um arquivo chamado
ack-cube-svc.yamlcom o conteúdo a seguir. O valor deselectordeve corresponder ao valor dematchLabelsemack-cube.yaml(app: ack-cube) para associar o Service ao aplicativo de backend.apiVersion: v1 kind: Service metadata: labels: app: ack-cube name: ack-cube-svc namespace: default spec: ports: - port: 80 protocol: TCP targetPort: 80 selector: app: ack-cube # You must specify the value of the matchLabels parameter in the YAML file that is used to create the Deployment. type: LoadBalancer -
Crie o Service para expor o aplicativo. A criação de um Service do tipo
LoadBalancerprovisiona automaticamente uma instância SLB voltada para o público.kubectl apply -f ack-cube-svc.yaml -
Confirme que o Service está em execução e obtenha o endereço IP público. Esse processo pode levar cerca de um minuto enquanto a instância SLB é provisionada.
kubectl get svc ack-cube-svcSaída esperada:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ack-cube-svc LoadBalancer 172.16.72.161 47.94.xx.xx 80:31547/TCP 32s Insira o endereço
EXTERNAL-IP(por exemplo,47.94.xx.xx) no seu navegador para acessar o jogo do cubo mágico.
Etapa 3: Limpar recursos (opcional)
Os custos de um cluster ACK incluem taxas de gerenciamento cobradas pelo próprio ACK, além das tarifas de outros recursos Alibaba Cloud utilizados.
Para excluir o cluster, faça logon no console do ACKconsole do ACKconsole do ACKconsole do ACK. Na página Clusters, localize seu cluster, clique em More na coluna Actions e selecione Delete. Na página Delete Cluster And Associated Resources, selecione os recursos que deseja remover e clique em Delete. Para mais informações, consulte Excluir um cluster.
Clusters Gerenciados Inteligentes possuem a Proteção contra Exclusão ativada por padrão. Desative esse recurso antes de excluir o cluster.

Próximos passos
Dimensionamento automático: Caso sua carga de trabalho apresente demandas de recursos variáveis ou imprevisíveis — cenário comum em aplicativos web, serviços de jogos ou plataformas de educação online — configure o dimensionamento automático tanto para as cargas de trabalho quanto para os recursos do cluster. Consulte Visão geral do Auto Scaling.
Roteamento de Camada 7: Para gerenciar regras de roteamento HTTP/HTTPS entre múltiplos serviços, utilize um Ingress em vez de um Service. Consulte Gerenciamento de Ingress.
Observabilidade: Monitore a infraestrutura do cluster, o desempenho dos aplicativos e as métricas de negócios para acompanhar a integridade do sistema e diagnosticar problemas. Consulte Visão geral do sistema de observabilidade.