Para executar aplicações Java no Kubernetes sem gerenciar diretamente a infraestrutura do cluster, use o Enterprise Distributed Application Service (EDAS). Ele oferece gerenciamento completo do ciclo de vida sobre o Container Service for Kubernetes (ACK). Em vez de criar imagens de contêiner e escrever manifests do Kubernetes manualmente, envie um pacote JAR ou WAR para que o EDAS realize a containerização e a implantação.
Este tópico descreve como criar um cluster ACK, importá-lo para o EDAS e implantar uma aplicação Java usando um pacote JAR ou WAR de demonstração.
Fluxo de trabalho
|
Etapa |
Tarefa |
Descrição |
|
1 |
Pré-requisitos |
Ative o EDAS e o ACK, crie um namespace de microsserviço e conceda as funções necessárias |
|
2 |
Criar um cluster ACK |
Crie um cluster Kubernetes gerenciado no console do ACK |
|
3 |
Importar o cluster para o EDAS |
Sincronize e importe o cluster para permitir o gerenciamento de implantações pelo EDAS |
|
4 |
Implantar a aplicação |
Configure e implante uma aplicação Java usando um pacote JAR ou WAR |
|
5 |
Verificar a implantação |
Confirme se os pods estão em execução |
|
6 |
Próximos passos |
Exponha a aplicação por meio de um balanceador de carga |

Pré-requisitos
Antes de começar, verifique se você tem:
Uma conta Alibaba Cloud com o EDAS ativado e o ACK ativado
Funções padrão do ACK concedidas à sua conta
Etapa 1: Criar um cluster ACK
Acesse o console do ACK e crie um cluster Kubernetes gerenciado. Para obter instruções, consulte Criar um cluster Kubernetes gerenciado.
Para criar um cluster ACK Serverless compatível com o Alibaba Cloud Service Mesh (ASM) após a importação para o EDAS, defina VPC como Create VPC e Service Discovery como PrivateZone . Se definir a VPC como Select Existing VPC , verifique se o cluster possui recursos de VPC e vSwitch após a criação. Para mais detalhes, consulte Criar um cluster ACK Serverless .
Etapa 2: Importar o cluster ACK para o EDAS
Ao importar um cluster ACK, o EDAS instala automaticamente os seguintes componentes:
|
Componente |
Finalidade |
|
ack-ahas-sentinel-pilot |
Proteção de aplicação (limitação de taxa e degradação) |
|
ack-arms-pilot |
Agente do Application Real-Time Monitoring Service (ARMS) |
|
ack-arms-prometheus |
Agente de monitoramento Prometheus |
Para importar o cluster:
Acesse o console do EDAS. No painel de navegação à esquerda, escolha Resource Management > Container Service Kubernetes Clusters.
Na barra de navegação superior, selecione a região onde reside seu cluster ACK e clique em Synchronize Container Service Kubernetes Cluster.
Localize o cluster sincronizado e clique em Import na coluna Actions.
Na caixa de diálogo Precheck for Import, clique em Continue.
Na caixa de diálogo Import Kubernetes Cluster, selecione um namespace de microsserviço na lista suspensa Microservice Namespace. Ative ou desative o Service Mesh conforme necessário e clique em Import.
A importação estará concluída quando o cluster exibir Running na coluna Cluster Status e Imported na coluna Import Status.
Etapa 3: Implantar a aplicação
O procedimento de implantação é o mesmo para pacotes JAR e WAR. As etapas a seguir usam um pacote JAR como exemplo.
3a. Criar a aplicação
Acesse o console do EDAS. No painel de navegação à esquerda, escolha Application Management > Applications.
Na barra de navegação superior, selecione uma região. Na parte superior da página, selecione um namespace de microsserviço. No canto superior esquerdo da página Applications, clique em Create Application.
3b. Configurar informações básicas
Na etapa Basic Information, configure os parâmetros a seguir e clique em Next.
|
Parâmetro |
Descrição |
|
Cluster Type |
Selecione Kubernetes Clusters. |
|
Application Source Type |
Selecione Default. |
|
Hosted Applications |
Selecione a linguagem de programação. Escolha Java para este exemplo. Para aplicações PHP ou multilíngues, consulte Criar aplicações PHP a partir do código-fonte e implantá-las em clusters ACK. |
|
Select Application |
Selecione um ambiente de execução com base no tipo da sua aplicação. Veja as opções abaixo. |
Opções de ambiente de execução:
|
Opção |
Caso de uso |
Parâmetros configuráveis |
|
Java |
Implantar uma aplicação Dubbo ou Spring Boot com um pacote JAR universal |
Java Environment |
|
Tomcat |
Implantar uma aplicação Dubbo ou Spring com um pacote WAR universal |
Java Environment, Container Version |
|
EDAS-Container (HSF) |
Implantar uma aplicação High-Speed Service Framework (HSF) com um pacote WAR ou FatJar |
Java Environment, Pandora Version, Ali-Tomcat Version |
Para implantação baseada em imagem, consulte Usar uma imagem para implantar uma aplicação de microsserviços Java em um cluster Kubernetes.
O OpenJDK 17 é compatível com Dubbo 2.7.14 ou posterior, ou Dubbo 3.0.6 ou posterior. Consulte a matriz de compatibilidade abaixo.
3c. Configurar a implantação
Na etapa Configurations, defina o ambiente, o método de implantação e os parâmetros de recursos e clique em Next.
Configurações de ambiente e cluster
|
Parâmetro |
Descrição |
|
Microservice Namespace |
Selecione o namespace criado. O padrão é Default se não for especificado. Para criar um novo, clique em Create Microservice Namespace. Consulte a seção "Criar um namespace" em Gerenciar namespaces de microsserviço. |
|
Cluster |
Selecione o cluster ACK importado. Caso o cluster ainda não tenha sido importado, marque This cluster is used for the first time in EDAS para importá-lo durante a criação da aplicação. Em seguida, verifique se o Alibaba Cloud Service Mesh está ativado. A primeira importação leva tempo adicional. |
|
K8s Namespace |
Selecione um namespace Kubernetes para isolamento de recursos. Opções: default (usado se não especificado), kube-system (objetos criados pelo sistema), kube-public (legível por todos os usuários, incluindo não autenticados). Para criar um namespace personalizado, clique em Create Kubernetes Namespace. O nome deve ter de 1 a 63 caracteres: letras minúsculas, dígitos e hifens (-), começando e terminando com uma letra ou dígito. |
O cluster e a aplicação não precisam pertencer ao mesmo namespace de microsserviço.
Configurações da aplicação
|
Parâmetro |
Descrição |
|
Application Name |
Deve começar com uma letra. Pode conter letras, dígitos e hifens (-), até 36 caracteres. |
|
Application Description |
Opcional. Até 128 caracteres. |
Pacote de implantação
|
Parâmetro |
Descrição |
|
Source of Deployment Package |
Escolha uma das seguintes opções: |
-
Custom Program: Envie um pacote JAR ou forneça uma URL de pacote.
Upload JAR Package: Selecione e envie um pacote local.
JAR Package Address: Insira a URL do seu pacote de implantação.
Official Demo: Selecione um tipo de aplicação de demonstração -- Spring Cloud Server Application, Spring Cloud Client Application, Dubbo Server Application ou Dubbo Client Application.
Registro de contêiner (apenas clusters ACK)
O parâmetro Container Registry Repository Type está disponível apenas para aplicações Java, Tomcat ou EDAS-Container (HSF) em clusters ACK. Não está disponível para clusters ACK Serverless.
Antes de usar um registro de contêiner, certifique-se de que:
O componente aliyun-acr-credential-helper esteja instalado
Para o Container Registry Enterprise Edition, o acesso via VPC esteja configurado
Selecione Container Registry Personal Edition ou Container Registry Enterprise Edition para armazenar a imagem construída. A tarefa de construção da imagem é executada no seu cluster com as seguintes regras de agendamento:
|
Rótulo ou taint de nó |
Comportamento |
|
|
O EDAS não agenda tarefas de construção nestes nós |
|
|
O EDAS prefere agendar tarefas de construção nestes nós, mas também pode usar nós sem rótulo |
|
|
As tarefas de construção podem tolerar este taint |
Para impedir que tarefas de construção sejam executadas em nós específicos, adicione o rótulo edas.image.build=disable. Para criar um nó dedicado à construção, adicione tanto o rótulo edas.image.build=enable quanto o taint key=edas.image.build, effect=NoSchedule.
O limite padrão de recursos para uma única tarefa de construção de imagem é de 1 GB por núcleo. Para ajustar esse limite, consulte Como ajusto os limites de recursos para construção de imagens?
Parâmetros do Container Registry Enterprise Edition:
|
Parâmetro |
Descrição |
|
Region of Container Registry |
Selecione a região da sua imagem do Container Registry. |
|
Container Registry |
Selecione sua imagem de contêiner. |
|
Image Repository Namespace |
Selecione um namespace ou clique em + Create Namespace para criar um. |
Configurações de recursos e execução
|
Parâmetro |
Descrição |
|
Version |
Especifique um número de versão personalizado ou clique em Use Timestamp as Version Number para gerar um automaticamente. |
|
Time Zone |
Selecione o fuso horário da aplicação. |
|
OpenJDK Base Image |
Disponível apenas quando Java Environment está definido como Custom OpenJDK na etapa Basic Information. Configure a origem da imagem: Se definir Alibaba Cloud Container Registry como Current Account, configure os parâmetros Region, Container Registry, Image Repository Namespace e Image Repository Name e selecione uma versão da imagem. Se definir como Other Alibaba Cloud Accounts, especifique o Full Image Address. Apenas JDK 7 e JDK 8 são suportados. Usar uma versão diferente do JDK pode causar exceções no recurso de monitoramento de aplicações. O servidor EDAS baixa a imagem base para construir uma imagem de aplicação. Certifique-se de que a imagem base tenha permissões públicas de pull. |
|
Total Pods |
Quantidade de pods a serem implantados. O máximo depende da capacidade do cluster. |
|
Single-pod Resource Quota |
Limites de CPU, memória e armazenamento efêmero por pod. Um valor de 0 significa sem limite. Os valores máximos dependem da capacidade do cluster. |
3d. Configurar definições avançadas (opcional)
Na etapa Advanced Settings, configure qualquer um dos itens abaixo conforme necessário:
3e. Iniciar a implantação
Clique em Create Application. Na etapa Creation Completed, clique em Create Application novamente.
Na caixa de diálogo Confirm Application Change Precheck, clique em Start Precheck.
Revise os resultados da pré-verificação e clique em Continue. Se modificou algum item da pré-verificação, clique em Check Again antes de prosseguir.
Verificar a implantação
A implantação leva alguns minutos. Para acompanhar o progresso e confirmar o sucesso:
Acesse a página Change List para rastrear o status da implantação em tempo real.
Após a conclusão da implantação, vá para Application Management > Applications e abra sua aplicação. Na página Application Overview, verifique o status dos pods.
Se todos os pods exibirem o estado running, a implantação foi bem-sucedida. Clique no status do pod para visualizar Deployments, pods e detalhes avançados de configuração para cada instância da aplicação.
Próximos passos
Após implantar a aplicação, vincule uma instância do Classic Load Balancer (CLB) para expô-la:
Acesso à Internet: Adicione uma instância CLB voltada para a Internet para que usuários externos possam acessar a aplicação pela rede pública.
Acesso interno: Adicione uma instância CLB voltada para o ambiente interno para que outros serviços na mesma Virtual Private Cloud (VPC) possam acessar a aplicação.
Para obter instruções, consulte Vincular instâncias CLB ou Reutilizar uma instância CLB.
Fale conosco
Se tiver dúvidas ou sugestões sobre o uso do Container Service for Kubernetes (ACK) e clusters Serverless Kubernetes no EDAS, entre no grupo do DingTalk pesquisando pelo ID 23197114 no DingTalk.