O Alibaba Cloud Container Service for Kubernetes (ACK) é um service de alto desempenho para gerenciar e executar aplicações em contêineres na cloud. 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 a aplicação 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 service e a autorização para o ACK. Consulte Quickly create an ACK managed cluster para obter o processo completo de configuração.
Revisado as billing information para clusters ACK e recursos associados
Etapa 1: Criar um cluster
O modo Gerenciado Inteligente do ACK simplifica a criação de clusters: basta configure 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 administra automaticamente. Para mais informações, consulte Create an ACK managed cluster (intelligent managed mode).
Para personalizar configurações detalhadas do cluster, consulte Create an ACK managed cluster .
Faça logon no ACK consoleACK consoleACK consoleACK console. Na página Clusters, clique em Create Kubernetes Cluster.
-
Na página exibida, clique na aba ACK Managed Cluster e ative 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 a aplicação
A aplicação 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 a seguir:
Enable an existing ACK cluster to access the Internet: Crie um NAT gateway 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 static public IP address a cada nó do cluster.
Em seguida, escolha o método de implantação:
Implantação pelo console: Implante e exponha a aplicação por meio da interface do ACK console.
Implantação via kubectl: Conecte-se ao cluster usando CloudShell, Workbench ou um cliente kubectl local e implante a aplicação com manifestos YAML.
Opção A: Implantação pelo console
Implantar e expor a aplicação
Esta seção demonstra como crie um Deployment para o jogo ACK-Cube e expô-lo à internet usando um Service. Para a lista completa de parâmetros de Deployment, consulte Create a stateless application by using a 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 da aplicação como
ack-cube.-
Clique em Next. Na aba Container, configure os seguintes parâmetros:
Parâmetro
Descrição
Valor de exemplo
Image Name
Imagem de contêiner a ser implantada.
registry.cn-hangzhou.aliyuncs.com/acr-toolkit/ack-cube:1.0Resource Limit
Limite máximo de CPU e memória que a aplicação pode consumir.
CPU: 1 Core, Memory: 1024 MiB. Deixe Ephemeral Storage em branco.
Required Resources
Recursos de CPU e memória reservados para a aplicação.
CPU: 0,5 Core, Memory: 512 MiB. Deixe Ephemeral Storage em branco.
Port
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, configure os parâmetros abaixo e clique em OK.
Parâmetro
Descrição
Valor de exemplo
Name
Nome do Service.
ack-cube-svcType
Método 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
Porta do Service e porta do contêiner. A porta do contêiner deve corresponder à do Pod de backend.
Service Port:
80, Container Port:80, Protocol: TCPSelecione Local para External Traffic Policy.
Clique em Create. Uma página de sucesso será exibida com os objetos da aplicação listados. Clique em View Details para revisá-los.
Acessar a aplicação
Faça logon no ACK consoleACK consoleACK consoleACK console. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, escolha Workloads > Deployments. Localize a aplicação 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 utilizando 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 gerencie seus recursos na cloud.
Faça logon no ACK consoleACK consoleACK consoleACK console. 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 será iniciada e o kubectl estará pronto para uso. Para mais informações, consulte Use kubectl on Workbench or Cloud Shell to connect to ACK clusters.
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 ACK consoleACK consoleACK consoleACK console. 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 será iniciada. Para mais informações, consulte Connect to an instance by using Workbench.
kubectl client
Utilize um cliente kubectl local para se conectar pela internet.
Faça logon no ACK consoleACK consoleACK consoleACK console. 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 Obtain the kubeconfig file of a cluster and use kubectl to connect to the cluster.-
Execute o comando a seguir para verifique 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 a aplicação
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 do Server Load Balancer (SLB). Para mais informações sobre como expor aplicações, consulte Use an automatically created SLB instance to expose an application.
-
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 a aplicação:
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 à aplicação 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 a aplicação. A criação de um Service do tipo
LoadBalancerprovisiona automaticamente uma instância de SLB voltada para o público.kubectl apply -f ack-cube-svc.yaml -
Confirme se o Service está em execução e obtenha o endereço IP público. Esse processo pode levar um minuto enquanto a instância de 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 ACK e tarifas de outros recursos Alibaba Cloud utilizados.
Para exclua o cluster, faça logon no ACK consoleACK consoleACK consoleACK console. 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 a serem excluídos e clique em Delete. Para mais informações, consulte Delete a 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 aplicações 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 Auto scaling overview.
Roteamento de Camada 7: Para gerencie regras de roteamento HTTP/HTTPS entre múltiplos serviços, utilize um Ingress em vez de um Service. Consulte Ingress management.
Observabilidade: Monitore a infraestrutura do cluster, o desempenho das aplicações e métricas de negócios para acompanhar a integridade do sistema e diagnosticar problemas. Consulte Observability system overview.