Os clusters ACK Serverless escalam sob demanda sem gerenciamento de nós, o que os torna ideais para cargas de trabalho com tráfego variável. O Enterprise Distributed Application Service (EDAS) integra-se ao Container Service for Kubernetes (ACK) para gerenciar todo o ciclo de vida de aplicações conteinerizadas nesses clusters.
Este tutorial orienta você na implantação de uma aplicação Java em um cluster ACK Serverless usando um pacote JAR ou WAR de demonstração fornecido pelo EDAS.
A implantação segue três fases:
Crie um cluster ACK Serverless no console do ACK.
Importe o cluster para o EDAS para que o serviço gerencie as aplicações nele.
Implante uma aplicação usando um pacote JAR ou WAR por meio do console do EDAS.

Caso já tenha um cluster ACK Serverless, pule para a Etapa 2: Importar o cluster para o EDAS. Se o cluster já estiver importado, vá diretamente para a Etapa 3: Implantar a aplicação.
Pré-requisitos
Antes de começar, certifique-se de ter:
Ativado o EDAS e o ACK para sua conta Alibaba Cloud. Consulte Ativar o EDAS e Início rápido do ACK
Concedido as funções padrão do ACK à sua conta. Consulte Funções padrão do ACK
Etapa 1: Criar um cluster ACK Serverless
Faça login no console do ACK e crie um cluster ACK Serverless. Para obter instruções, consulte Criar um cluster ASK.
Etapa 2: Importar o cluster para o EDAS
Ao importar um cluster ACK, o EDAS instala automaticamente os seguintes componentes:
|
Componente |
Finalidade |
|
ack-ahas-sentinel-pilot |
Proteção contra limitação de taxa e degradação |
|
ack-arms-pilot |
Agente do Application Real-Time Monitoring Service (ARMS) |
|
ack-arms-prometheus |
Monitoramento Prometheus |
Para importar o cluster:
Faça login no console do EDAS. No painel de navegação à esquerda, escolha Resource Management > Serverless Kubernetes Clusters.
Na barra de navegação superior, selecione a região e o namespace de microsserviços onde reside seu cluster ACK Serverless. Clique em Synchronize Serverless Kubernetes Cluster.
Localize o cluster desejado e clique em Import na coluna Actions.
Na mensagem de Warning, clique em OK.
Na caixa de diálogo Precheck for Import, clique em Continue.
Na caixa de diálogo Import Kubernetes Cluster, selecione um namespace de microsserviços na lista suspensa Microservice Namespace, ative ou desative o Service Mesh conforme necessário e clique em Import.
Verificar a importação
Após a conclusão da importação, confirme se a coluna Cluster Status exibe Running e se a coluna Import Status mostra Imported.
Etapa 3: Implantar a aplicação
Esta etapa abrange a criação de uma aplicação e sua implantação com um pacote JAR ou WAR. O processo geral é idêntico para ambos os tipos de pacote. A única diferença está na seleção do ambiente de execução:
|
Tipo de pacote |
Ambiente de execução |
Parâmetros configuráveis |
|
JAR |
Java (Dubbo ou Spring Boot) |
Java Environment |
|
WAR |
Tomcat (Dubbo ou Spring) |
Java Environment, Container Version |
|
WAR ou FatJar |
EDAS-Container (HSF) (High-Speed Service Framework) |
Java Environment, Pandora Version, Ali-Tomcat Version |
Os passos a seguir usam um pacote JAR como exemplo. Para implantar um pacote WAR, selecione Tomcat ou EDAS-Container (HSF) em vez de Java na etapa Basic Information.
3a. Criar uma aplicação
Faça login no console do EDAS. No painel de navegação à esquerda, escolha Application Management > Applications.
Na barra de navegação superior, selecione uma região e um namespace de microsserviços. Clique em Create Application.
3b. Configurar informações básicas
Na etapa Basic Information, configure os parâmetros abaixo e clique em Next.
|
Parâmetro |
Descrição |
|
Cluster Type |
Selecione Kubernetes Clusters. |
|
Application Source Type |
Escolha Default. |
|
Hosted Applications |
Defina a linguagem de programação. Este tutorial usa Java. Para implantar uma aplicação PHP ou multilíngue, consulte Criar aplicações PHP a partir do código-fonte e implantá-las em clusters ACK. |
|
Select Application |
Escolha o ambiente de execução conforme o tipo de aplicação e o pacote de implantação. Consulte a tabela de opções de execução acima. Para implantar usando uma imagem, veja Usar uma imagem para implantar uma aplicação de microsserviços Java em um cluster Kubernetes. |
Compatibilidade com OpenJDK 17
O OpenJDK 17 é compatível com Dubbo 2.7.14 ou posterior e Dubbo 3.0.6 ou posterior. A tabela a seguir lista as combinações de versões testadas.
|
Versão do Dubbo |
Versão do Spring Boot |
Versão do cliente Nacos |
Chamada de API |
Monitoramento ARMS |
Lista de serviços |
|
2.7.14 |
2.7.9 |
1.4.4 |
Suportado |
Suportado |
Suportado |
|
2.7.14 |
2.7.9 |
2.1.2 |
Suportado |
Suportado |
Suportado |
|
2.7.14 |
2.7.9 |
2.2.0 |
Suportado |
Suportado |
Suportado |
|
2.7.22 |
2.7.9 |
1.4.4 |
Suportado |
Suportado |
Suportado |
|
2.7.22 |
2.7.9 |
2.1.2 |
Suportado |
Suportado |
Suportado |
|
2.7.22 |
2.7.9 |
2.2.0 |
Suportado |
Suportado |
Suportado |
|
3.0.6 |
2.7.9 |
1.4.4 |
Suportado |
Suportado |
Suportado |
|
3.0.6 |
2.7.9 |
2.1.2 |
Suportado |
Suportado |
Suportado |
|
3.0.6 |
2.7.9 |
2.2.0 |
Suportado |
Suportado |
Suportado |
|
3.1.7 |
2.7.9 |
1.4.4 |
Suportado |
Suportado |
Suportado |
|
3.1.7 |
2.7.9 |
2.1.2 |
Suportado |
Suportado |
Suportado |
|
3.1.7 |
2.7.9 |
2.2.0 |
Suportado |
Suportado |
Suportado |
3c. Configurar definições de implantação
Na etapa Configurations, ajuste os parâmetros seguintes e clique em Next.
Definições de ambiente e cluster:
|
Parâmetro |
Descrição |
|
Microservice Namespace |
Selecione o namespace de microsserviços criado. O valor padrão é Default caso nenhum seja escolhido. Para criar um novo, clique em Create Microservice Namespace. Consulte a seção "Criar um namespace" em Gerenciar namespaces de microsserviços. |
|
Cluster |
Escolha o cluster ACK Serverless importado. Se o cluster ainda não foi importado para o EDAS, marque This cluster is used for the first time in EDAS para importá-lo durante a criação da aplicação. Não é necessário que o cluster pertença ao mesmo namespace de microsserviços da aplicação. |
|
K8s Namespace |
Defina o namespace Kubernetes. Valores válidos: default, kube-system, kube-public. Selecione default para este tutorial. Para criar um namespace personalizado, clique em Create Kubernetes Namespace e insira um nome (1-63 caracteres; letras minúsculas, dígitos e hifens; deve começar e terminar com letra ou dígito). |
Definições da aplicação:
|
Parâmetro |
Descrição |
|
Application Name |
Insira um nome (até 36 caracteres; inicia com letra; permite letras, dígitos e hifens). |
|
Application Description |
Opcional. Até 128 caracteres. |
Pacote de implantação:
|
Parâmetro |
Descrição |
|
Source of Deployment Package |
Escolha uma fonte de implantação. |
Custom Program: Faça upload do seu próprio pacote. Defina File Uploading Method como Upload JAR Package (upload direto) ou JAR Package Address (forneça uma URL).
Official Demo: Escolha uma demonstração pré-construída: Spring Cloud Server Application, Spring Cloud Client Application, Dubbo Server Application ou Dubbo Client Application.
Definições de versão e recursos:
|
Parâmetro |
Descrição |
|
Version |
Insira um número de versão ou clique em Use Timestamp as Version Number para gerar um automaticamente. |
|
Time Zone |
Selecione o fuso horário da aplicação. |
|
Total Pods |
Defina a quantidade de pods para a aplicação. O máximo depende da capacidade do cluster. |
|
Single-pod Resource Quota |
Estabeleça limites de CPU, memória e armazenamento efêmero por pod. O valor padrão |
Configurações da imagem base OpenJDK
O parâmetro OpenJDK Base Image aparece apenas se você tiver selecionado Custom OpenJDK para Java Environment na etapa Basic Information.
Configure a origem da imagem base:
Current Account: Especifique Region, Container Registry, Image Repository Namespace e Image Repository Name.
Other Alibaba Cloud Accounts: Informe o Full Image Address para um repositório público.
Somente JDK 7 e JDK 8 são suportados. O servidor EDAS baixa a imagem base para construir a imagem da aplicação; portanto, a imagem base deve ter permissões públicas de pull.
Configurações do Container Registry (apenas clusters ACK)
O parâmetro Container Registry Repository Type está disponível somente para aplicações Java, Tomcat ou EDAS-Container (HSF) implantadas em clusters ACK. Ele não se aplica a clusters ACK Serverless.
|
Parâmetro |
Descrição |
|
Container Registry Repository Type |
Escolha Container Registry Personal Edition ou Container Registry Enterprise Edition para armazenar a imagem construída. O componente |
|
Region of Container Registry |
Obrigatório apenas para a Enterprise Edition. Selecione a região da sua imagem no Container Registry (ACR). |
|
Container Registry |
Obrigatório apenas para a Enterprise Edition. Escolha sua imagem de contêiner. |
|
Image Repository Namespace |
Selecione o namespace do repositório de imagens ou clique em + Create Namespace para criar um novo. |
As tarefas de construção de imagem são executadas no seu cluster e consomem recursos dele. O limite padrão de recursos para uma única tarefa de construção é de 1 GB por núcleo. Para ajustar esse limite, consulte Ajustar limites de recursos para construção de imagens.
Regras de agendamento de tarefas de construção:
|
Regra |
Comportamento |
|
Exclusão |
O EDAS não agenda tarefas de construção em nós rotulados com |
|
Preferência |
O sistema prioriza nós rotulados com |
|
Tolerância |
As tarefas de construção toleram nós com a taint |
Dica: Para dedicar um nó exclusivamente a tarefas de construção, adicione o rótuloedas.image.build=enablee a taintkey=edas.image.build, effect=NoSchedule. Isso impede que outros pods sejam agendados nesse nó.
3d. Configurar definições avançadas (opcional)
Na etapa Advanced Settings, configure os itens abaixo conforme necessário:
3e. Criar e implantar
Após configurar todas as definições, clique em Create Application. Na etapa Creation Completed, clique novamente em Create Application.
Na caixa de diálogo Confirm Application Change Precheck, clique em Start Precheck.
Revise os resultados da verificação prévia e clique em Continue. Caso tenha modificado algum item da verificação, clique em Check Again antes de prosseguir.
Verificar a implantação
A implantação leva alguns minutos. Acompanhe o progresso na página Change List.
Quando a implantação for concluída, acesse Application Overview e verifique o status dos pods:
Se todos os pods exibirem running, a aplicação foi implantada com sucesso.
Clique no status de execução de um pod para visualizar seus Deployments, detalhes do pod e configurações avançadas.
Caso os pods não atinjam o estado running, verifique os eventos e logs do pod na página Application Overview para identificar o problema.
Expor a aplicação com um balanceador de carga
Após implantar a aplicação, adicione uma instância de Server Load Balancer (SLB) para expô-la:
|
Tipo de SLB |
Caso de uso |
|
Voltado para a Internet |
Expõe a aplicação à Internet |
|
Voltado para rede interna |
Disponibiliza a aplicação para todos os nós na mesma VPC via rede interna |
Para obter instruções, consulte Adicionar uma instância SLB a uma aplicação em um cluster Kubernetes.
Suporte
Para dúvidas sobre clusters ACK ou ACK Serverless no EDAS, envie um ticket ou participe do grupo DingTalk 23197114.