Compartilhar via


Implantar um aplicativo Java com o Open Liberty ou WebSphere Liberty em um cluster do AKS (Serviço de Kubernetes do Azure)

Este artigo demonstra como:

  • Executar seu aplicativo Java, Java EE, Jacarta EE ou MicroProfile no runtime do Open Liberty ou do IBM WebSphere Liberty.
  • Crie a imagem do Docker do aplicativo com az acr build usando as imagens de contêiner do Open Liberty ou do WebSphere Liberty.
  • Implante o aplicativo nos contêineres em um cluster do AKS (Serviço de Kubernetes do Azure) usando o Operador Open Liberty ou Operador WebSphere Liberty.

O Open Liberty Operator simplifica a implantação e o gerenciamento de aplicativos executados em clusters Kubernetes. Com o Operador Open Liberty Operator ou WebSphere Liberty, você também pode executar operações mais avançadas, como coleta de rastreamentos e despejos.

Este artigo usa a oferta do Azure Marketplace para Open Liberty ou WebSphere Liberty para acelerar sua jornada no AKS. A oferta provisiona automaticamente alguns recursos do Azure, incluindo:

  • Uma instância do Registro de Contêiner do Azure.
  • Uma cluster do AKS.
  • Uma instância do Controlador de Entrada de Gateway de Aplicativo (AGIC).
  • O operador Open Liberty e o operador WebSphere Liberty.
  • Opcionalmente, uma imagem de contêiner que inclui o Liberty e seu aplicativo.

Se você preferir diretrizes passo a passo manuais para executar o Liberty no AKS, confira Implantar manualmente um aplicativo Java com o Open Liberty ou o WebSphere Liberty em um cluster AKS (Serviço de Kubernetes do Azure).

Este artigo tem o objetivo de ajudá-lo a iniciar rapidamente a implementação. Antes de ir para a produção, você deve explorar a documentação IBM sobre como ajustar o Liberty.

Se você tiver interesse em fornecer feedback ou trabalhar em seus cenários de migração em estreita colaboração com a equipe de engenharia que desenvolve o WebSphere para as soluções do Azure, responda a essa breve pesquisa sobre migração para o WebSphere e inclua seus dados de contato. A equipe de gerentes de programas, arquitetos e engenheiros entrará em contato prontamente com você para dar início a uma estreita colaboração.

Pré-requisitos

  • Uma assinatura do Azure. Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
  • Prepare um computador local com o sistema operacional semelhante ao Unix instalado, como Ubuntu, Azure Linux, macOS ou Subsistema do Windows para Linux.
  • Instalar a CLI do Azure para executar comandos da CLI do Azure.
    • Entre na CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para obter outras opções de login, confira Entrar no Azure com a CLI do Azure.
    • Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar e gerenciar extensões com a CLI do Azure.
    • Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade. Este artigo requer pelo menos a versão 2.61.0 da CLI do Azure.
  • Instale uma implementação Java SE (Standard Edition), versão 17 (por exemplo, Eclipse Open J9).
  • Instale o Maven 3.9.8 ou posterior.
  • Verifique se o Git está instalado.
  • Verifique se você foi atribuído à função Owner ou às funções Contributor e User Access Administrator na assinatura. Você pode verificá-lo seguindo as etapas em Listar atribuições de função para um usuário ou grupo.

Criar uma implantação do Liberty no AKS usando o portal

As etapas a seguir guiará você a criar um runtime do Liberty no AKS. Depois de concluir essas etapas, você terá uma instância do Registro de Contêiner e um cluster do AKS para implantar seu aplicativo em contêineres.

  1. Acesse o portal do Azure. Na caixa de pesquisa na parte superior da página, insira WebSphere Liberty/Open Liberty no Kubernetes. Quando as sugestões aparecerem, selecione a única correspondência na seção Marketplace.

    Se preferir, você pode ir diretamente para a oferta.

  2. Selecione Criar.

  3. No painel Informações Básicas:

    1. Crie um novo grupo de recursos. Como os grupos de recursos devem ser exclusivos em uma assinatura, escolha um nome exclusivo. Uma forma fácil de ter nomes exclusivos é usar uma combinação de suas iniciais, a data de hoje e algum identificador (por exemplo, ejb0913-java-liberty-project-rg). Anote o nome do grupo de recursos para uso posterior neste artigo.
    2. Em Região, selecione uma região próxima a você. Por exemplo, selecione Leste dos EUA 2.
  4. Selecione Avançar. No painel do AKS, opcionalmente, você pode selecionar um cluster do AKS existente e uma instância do Registro de Contêiner, em vez de fazer com que a implantação crie novos. Essa escolha permite que você use o padrão sidecar, conforme mostrado no Centro de Arquitetura do Azure. Você também pode ajustar as configurações para o tamanho e o número das máquinas virtuais no pool de nós do AKS.

    Para os propósitos deste artigo, basta manter todos os padrões neste painel.

  5. Selecione Avançar. No painel Balanceamento de Carga, ao lado de Conectar-se ao Gateway de Aplicativo do Azure, selecione Sim. Nesta seção, você pode personalizar as seguintes opções de implantação:

    • Em Rede virtual e Sub-rede, você pode, como alternativa, personalizar a rede virtual e a sub-rede nas quais a implantação coloca os recursos. Você não precisa alterar os valores restantes de seus padrões.

    • No Certificado TLS/SSL, você pode fornecer o certificado TLS/SSL do Gateway de Aplicativo do Azure. Deixe os valores nos padrões para fazer com que a oferta gere um certificado autoassinado.

      Não entre em produção com um certificado autoassinado. Para obter mais informações sobre certificados autoassinados, confira Criar um certificado público autoassinado para autenticar seu aplicativo.

    • Você pode selecionar Habilitar a afinidade baseada em cookies, também conhecida como sessões persistentes. Este artigo usa sessões autoadesivas, portanto, certifique-se de selecionar essa opção.

  6. Selecione Avançar. No painel Operador e aplicativo, este artigo usa todos os padrões. No entanto, você pode personalizar as seguintes opções de implantação:

    • Você pode implantar o Operador WebSphere Liberty selecionando Sim para a opção IBM com suporte?. Deixar o padrão Não implementa o Operador Open Liberty.
    • Você pode implementar um aplicativo para a operadora selecionada, marcando Sim na opção Implantar um aplicativo?. Sair do padrão Não implementa nenhum aplicativo.
  7. Selecione Examinar + criar para validar suas opções selecionadas. No painel Revisar + criar, quando Criar ficar disponível após a aprovação da validação, selecione-o.

    A implantação pode levar até 20 minutos. Enquanto aguarda a conclusão da implantação, você pode seguir as etapas na seção Criar uma instância do Banco de Dados SQL do Azure. Depois de concluir essa seção, volte aqui e continue.

Capturar informações selecionadas da implantação

Se você saiu do painel A implantação está em andamento, as etapas a seguir mostram como voltar para ele. Se você ainda estiver no painel que mostra Sua implantação foi concluída, vá para o grupo de recursos recém-criado e pule para a terceira etapa.

  1. No canto de qualquer página do portal, selecione o botão de menu e selecione Grupos de recursos.

  2. Na caixa com o texto Filtrar para qualquer campo, insira os primeiros caracteres do grupo de recursos criado anteriormente. Se você seguiu a convenção recomendada, insira suas iniciais e selecione o grupo de recursos apropriado.

  3. Na lista de recursos no grupo de recursos, selecione o recurso com o valor Tipo de registro de Contêiner.

  4. No painel de navegação, em Configurações, selecione Chaves de acesso.

  5. Anote os valores de Nome de registro e Servidor de logon. Você pode usar o ícone de cópia ao lado de cada campo para copiar o valor para a área de transferência do sistema.

    Observação

    Este artigo usa o comando az acr build para criar e enviar a imagem do Docker por push para o Registro de Contêiner, sem usar username e password do Registro de Contêiner. Ainda é possível usar o nome de usuário e senha com docker login e docker push. O uso de nome de usuário e senha é menos seguro do que a autenticação sem senha.

  6. Volte para o grupo de recursos em que você implantou os recursos.

  7. Na seção Configurações, selecione Implantações.

  8. Selecione a implantação mais abaixo da lista. O valor Nome da implantação corresponde à ID do editor da oferta. Ele contém a cadeia de caracteres ibm.

  9. No painel de navegação, selecione Saídas.

  10. Usando a mesma técnica de cópia dos valores anteriores, guarde os valores para as seguintes saídas:

    • cmdToConnectToCluster

    • appDeploymentTemplateYaml se a implantação não incluir um aplicativo. Ou seja, você selecionou Nenhum para Implantar um aplicativo? quando você implantou a oferta do Marketplace. Esse artigo selecionou Não. No entanto, se você selecionou Sim, anote o valor de appDeploymentYaml, que inclui a implantação do aplicativo.

      Cole o valor de appDeploymentTemplateYaml ou appDeploymentYaml em um shell Bash e execute o comando.

      A saída desse comando é o YAML de implantação do aplicativo. Procure o segredo TLS de entrada com a palavra-chave secretName, como - secretName: secret785e2c. Salve o valor de secretName.

Execute os comandos a seguir para definir as variáveis de ambiente capturadas nas etapas anteriores. Essas variáveis de ambiente são usadas posteriormente neste artigo.

export RESOURCE_GROUP_NAME=<your-resource-group-name>
export REGISTRY_NAME=<your-registry-nam-of-container-registry>
export LOGIN_SERVER=<your-login-server-of-container-registry>
export INGRESS_TLS_SECRET=<your-ingress-tls-secret-name>

Criar uma instância do Banco de Dados SQL do Azure

Nesta seção, você cria um banco de dados individual do Banco de Dados SQL do Azure para usar com seu aplicativo.

Primeiro, defina variáveis de ambiente relacionadas ao banco de dados. Substitua <your-unique-sql-server-name> por um nome exclusivo para o servidor do Banco de Dados SQL do Azure.

export SQL_SERVER_NAME=<your-unique-sql-server-name>
export DB_NAME=demodb

Execute o comando a seguir em seu terminal para criar um banco de dados individual no Banco de Dados SQL do Azure e definir o usuário conectado atual como um administrador do Microsoft Entra. Para obter mais informações, confira Início Rápido: criar um banco de dados individual – Banco de Dados SQL do Azure.

export ENTRA_ADMIN_NAME=$(az account show --query user.name --output tsv)

az sql server create \
    --name $SQL_SERVER_NAME \
    --resource-group $RESOURCE_GROUP_NAME \
    --enable-ad-only-auth \
    --external-admin-principal-type User \
    --external-admin-name $ENTRA_ADMIN_NAME \
    --external-admin-sid $(az ad signed-in-user show --query id --output tsv)
az sql db create \
    --resource-group $RESOURCE_GROUP_NAME \
    --server $SQL_SERVER_NAME \
    --name $DB_NAME \
    --edition GeneralPurpose \
    --compute-model Serverless \
    --family Gen5 \
    --capacity 2

Em seguida, adicione o endereço IP local às regras de firewall do servidor do Banco de Dados SQL do Azure para permitir que seu computador local se conecte ao banco de dados para teste local posteriormente.

export AZ_LOCAL_IP_ADDRESS=$(curl -s https://whatismyip.akamai.com)
az sql server firewall-rule create \
    --resource-group $RESOURCE_GROUP_NAME \
    --server $SQL_SERVER_NAME \
    --name AllowLocalIP \
    --start-ip-address $AZ_LOCAL_IP_ADDRESS \
    --end-ip-address $AZ_LOCAL_IP_ADDRESS

Observação

Este artigo desabilita a autenticação SQL para ilustrar as práticas recomendadas de segurança. O Microsoft Entra ID é usado para autenticar a conexão com o servidor. Se você precisar habilitar a autenticação SQL, consulte az sql server create.

Criar uma conexão de serviço no AKS com o Conector de Serviço

Nesta seção, você criará uma conexão de serviço entre o cluster do AKS e o Banco de Dados SQL do Azure usando a ID de carga de trabalho do Microsoft Entra com o Conector de Serviço. Essa conexão permite que o cluster do AKS acesse o Banco de Dados SQL do Azure sem usar a autenticação SQL.

Primeiro, conceda ao aplicativo Provedor de Recursos do Conector de Serviços do Azure permissões para o Gateway de Aplicativo implantado antes. Essa etapa é necessária para criar com sucesso uma conexão de serviço entre o cluster do AKS e o Banco de Dados SQL do Azure.

  1. Acesse o portal do Azure e navegue até o grupo de recursos criado anteriormente.
  2. Na lista de recursos no grupo de recursos, selecione o recurso com o valor Tipo de Gateway de aplicativo.
  3. Selecione IAM (Controle de acesso) . Em seguida, expanda Adicionar e selecione Adicionar atribuição de função.
  4. Na guia Função, selecione Funções de administrador com privilégios. Depois, selecione Colaborador. Selecione Avançar.
  5. Na guia Membros, selecione Selecionar membros. Em seguida, pesquise o aplicativo Provedor de Recursos do Conector de Serviço do Azure. Selecione o aplicativo e clique em Selecionar. Selecione Avançar.
  6. Selecione Revisar + atribuir. Aguarde alguns segundos para que a atribuição de função seja concluída.

Depois, execute os seguintes comandos para criar uma conexão entre o cluster do AKS e o Banco de Dados SQL usando a ID de carga de trabalho do Microsoft Entra com o Conector de Serviço. Para obter mais informações, consulte Criar uma conexão de serviço no AKS com o Conector de Serviço (versão prévia).

# Register the Service Connector and Kubernetes Configuration resource providers
az provider register --namespace Microsoft.ServiceLinker --wait
az provider register --namespace Microsoft.KubernetesConfiguration --wait

# Install the Service Connector passwordless extension
az extension add --name serviceconnector-passwordless --upgrade --allow-preview true

# Retrieve the AKS cluster and Azure SQL Server resource IDs
export AKS_CLUSTER_RESOURCE_ID=$(az aks show \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $CLUSTER_NAME \
    --query id \
    --output tsv)
export AZURE_SQL_SERVER_RESOURCE_ID=$(az sql server show \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $SQL_SERVER_NAME \
    --query id \
    --output tsv)

# Create a user-assigned managed identity used for workload identity
export USER_ASSIGNED_IDENTITY_NAME=workload-identity-uami
az identity create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name ${USER_ASSIGNED_IDENTITY_NAME}

# Retrieve the user-assigned managed identity resource ID
export UAMI_RESOURCE_ID=$(az identity show \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name ${USER_ASSIGNED_IDENTITY_NAME} \
    --query id \
    --output tsv)

# Create a service connection between your AKS cluster and your SQL database using Microsoft Entra Workload ID
az aks connection create sql \
    --connection akssqlconn \
    --client-type java \
    --source-id $AKS_CLUSTER_RESOURCE_ID \
    --target-id $AZURE_SQL_SERVER_RESOURCE_ID/databases/$DB_NAME \
    --workload-identity $UAMI_RESOURCE_ID

Observação

Recomendamos usar a ID de carga de trabalho do Microsoft Entra para acesso seguro ao Banco de Dados SQL do Azure sem usar a autenticação SQL. Se você precisar usar a autenticação SQL, ignore as etapas anteriores nesta seção e use o nome de usuário e a senha para se conectar ao Banco de Dados SQL do Azure.

Criar a conta de serviço e o segredo pelo Conector de Serviço

Para se autenticar no Banco de Dados SQL do Azure, você precisa que a conta de serviço e o segredo sejam criados pelo Service Connector. Siga as instruções na seção Atualizar seu contêiner do Tutorial: conectar um aplicativo AKS ao Banco de Dados SQL do Azure. Use a opção Criar uma implantação diretamente usando o snippet de código de exemplo do YAML fornecido e siga as etapas a seguir:

  1. Nas seções destacadas no YAML de implantação do Kubernetes de exemplo, copie os valores de serviceAccountName e secretRef.name, conforme mostrado no exemplo a seguir:

    serviceAccountName: <service-account-name>
    containers:
    - name: raw-linux
       envFrom:
          - secretRef:
             name: <secret-name>
    
  2. Use os comandos a seguir para definir variáveis de ambiente. Substitua <service-account-name> e <secret-name> pelos valores que você copiou na etapa anterior.

    export SERVICE_ACCOUNT_NAME=<service-account-name>
    export SECRET_NAME=<secret-name>
    

    Esses valores são usados na próxima seção para implantar o aplicativo Liberty no cluster do AKS.

Observação

O segredo criado pelo Conector de Serviço contém a AZURE_SQL_CONNECTIONSTRING, que é uma cadeia de conexão sem senha para o Banco de Dados SQL do Azure. Para obter mais informações, consulte o valor de exemplo na seção Autenticação de identidade gerenciada atribuída pelo usuário de Integrar o Banco de Dados SQL do Azure ao Conector de Serviço.

Agora que você configurou o banco de dados e o cluster do AKS, você pode continuar preparando o AKS para hospedar seu aplicativo Open Liberty.

Configurar e implantar um aplicativo de exemplo

Siga as etapas nesta seção para implantar o aplicativo de exemplo no runtime do Liberty. Essas etapas usam o Maven.

Fazer check-out do aplicativo

Clone o código de exemplo para este artigo. O exemplo está no GitHub.

Há alguns exemplos no repositório. Este artigo usa java-app. Execute os seguintes comandos para obter a amostra:

git clone https://github.com/Azure-Samples/open-liberty-on-aks.git
cd open-liberty-on-aks
export BASE_DIR=$PWD
git checkout 20241107

Se você vir uma mensagem sobre estar no estado "HEAD desanexado", poderá ignorá-la com segurança. A mensagem significa apenas que você fez check-out de uma marca.

Aqui está a estrutura de arquivos do aplicativo, com arquivos e diretórios importantes:

java-app
├─ src/main/
│  ├─ aks/
│  │  ├─ openlibertyapplication-agic-passwordless-db.yaml
│  ├─ docker/
│  │  ├─ Dockerfile
│  │  ├─ Dockerfile-wlp
│  ├─ liberty/config/
│  │  ├─ server.xml
│  ├─ java/
│  ├─ resources/
│  ├─ webapp/
├─ pom.xml
├─ pom-azure-identity.xml

Os diretórios java, resources e webapp contêm o código-fonte do aplicativo de exemplo. O código declara e usa uma fonte de dados chamada jdbc/JavaEECafeDB.

No diretório aks, o arquivo openlibertyapplication-agic-passwordless-db.yaml é usado para implantar a imagem do aplicativo com a conexão sem senha e AGIC para o Banco de Dados SQL do Azure. Este artigo pressupõe que você use esse arquivo.

No diretório docker, há dois arquivos para criar a imagem do aplicativo com o Open Liberty ou o WebSphere Liberty.

No diretório liberty/config, o arquivo server.xml é usado para configurar a conexão de banco de dados para o cluster do Open Liberty e do WebSphere Liberty. Ele define uma variável azure.sql.connectionstring usada para se conectar ao Banco de Dados SQL do Azure.

O arquivo pom.xml é o arquivo POM (modelo de objeto de projeto) do Maven que contém as informações de configuração do projeto. O arquivo pom-azure-identity.xml declara uma dependência em azure-identity. Esse arquivo é usado para autenticar nos serviços do Azure usando o Microsoft Entra ID.

Observação

Esse exemplo usa a biblioteca azure-identity para autenticar no Banco de Dados SQL do Azure usando a autenticação do Microsoft Entra. Se você precisar usar a autenticação SQL em seu aplicativo Liberty, consulte Conexões de banco de dados relacional com o JDBC.

Compilar o projeto

Agora que você reuniu as propriedades necessárias, crie o aplicativo. O arquivo POM do projeto lê muitas variáveis do ambiente. Como parte do build do Maven, essas variáveis são usadas para preencher valores nos arquivos YAML localizados em src/main/aks. Você poderá fazer algo semelhante para seu aplicativo fora do Maven se preferir.

cd $BASE_DIR/java-app
# The following variables are used for deployment file generation into the target.
export LOGIN_SERVER=${LOGIN_SERVER}
export SC_SERVICE_ACCOUNT_NAME=${SERVICE_ACCOUNT_NAME}
export SC_SECRET_NAME=${SECRET_NAME}
export INGRESS_TLS_SECRET=${INGRESS_TLS_SECRET}

mvn clean install
mvn dependency:copy-dependencies -f pom-azure-identity.xml -DoutputDirectory=target/liberty/wlp/usr/shared/resources

Testar o projeto localmente

Execute e teste o projeto localmente antes de implantar o Azure. Para conveniência, este artigo usa liberty-maven-plugin. Para saber mais sobre liberty-maven-plugin, consulte o artigo Criando um aplicativo Web com o Maven do Open Liberty.

Observação

Se você selecionou uma implantação de banco de dados "sem servidor", verifique se o banco de dados SQL não entrou no modo de pausa. Faça isso entrando no editor de consultas do banco de dados, conforme descrito em Início Rápido: Usar o editor de consultas do portal do Azure (versão prévia) para consultar o Banco de Dados SQL do Azure.

  1. Inicie o aplicativo usando liberty:run.

    cd $BASE_DIR/java-app
    
    # The value of environment variable AZURE_SQL_CONNECTIONSTRING is read by configuration variable `azure.sql.connectionstring` in server.xml
    export AZURE_SQL_CONNECTIONSTRING="jdbc:sqlserver://$SQL_SERVER_NAME.database.windows.net:1433;databaseName=$DB_NAME;authentication=ActiveDirectoryDefault"
    mvn liberty:run
    
  2. Verifique se o aplicativo funciona conforme o esperado. Você deve ver uma mensagem semelhante a [INFO] [AUDIT ] CWWKZ0001I: Application javaee-cafe started in 18.235 seconds. na saída do comando. Acesse http://localhost:9080/ no navegador e verifique se o aplicativo está acessível e se todas as funções estão operantes.

  3. Pressione Ctrl+C para parar. Pressione Y se for solicitado que você encerre o trabalho em lotes.

Quando terminar, exclua a regra de firewall que permite que seu endereço IP local acesse o Banco de Dados SQL do Azure usando o seguinte comando:

az sql server firewall-rule delete \
    --resource-group $RESOURCE_GROUP_NAME \
    --server $SQL_SERVER_NAME \
    --name AllowLocalIP

Compilar imagem para implantação do AKS

Agora você pode executar o comando az acr build para criar a imagem, conforme mostrado no exemplo a seguir:

cd $BASE_DIR/java-app/target

az acr build \
    --registry ${REGISTRY_NAME} \
    --image javaee-cafe:v1 \
    .

O comando az acr build carrega os artefatos especificados no Dockerfile para a instância do Registro de Contêiner, cria a imagem e a armazena na instância do Registro de Contêiner.

Implantar o aplicativo no cluster AKS

Siga as etapas abaixo para implantar o aplicativo Liberty no cluster do AKS:

  1. Conecte o cluster do AKS.

    Cole o valor de cmdToConnectToCluster em um shell e execute o comando.

  2. Aplique o arquivo de implantação executando os seguintes comandos:

    cd $BASE_DIR/java-app/target
    
    # Apply deployment file
    kubectl apply -f openlibertyapplication-agic-passwordless-db.yaml
    
  3. Aguarde até que todos os pods sejam reiniciados com êxito usando o seguinte comando:

    kubectl get pods --watch
    

    Uma saída semelhante ao exemplo a seguir indica que todos os pods estão em execução:

    NAME                                       READY   STATUS    RESTARTS   AGE
    javaee-cafe-cluster-agic-67cdc95bc-2j2gr   1/1     Running   0          29s
    javaee-cafe-cluster-agic-67cdc95bc-fgtt8   1/1     Running   0          29s
    javaee-cafe-cluster-agic-67cdc95bc-h47qm   1/1     Running   0          29s
    

Testar o aplicativo

Quando os pods estão em execução, você pode testar o aplicativo usando o endereço IP público da instância do Gateway de Aplicativo.

Execute o seguinte comando para obter e exibir o endereço IP público da instância do Gateway de Aplicativo, exposto pelo recurso de entrada criado pelo AGIC:

export APP_URL=https://$(kubectl get ingress | grep javaee-cafe-cluster-agic-ingress | cut -d " " -f14)/
echo $APP_URL

Copie a URL e abra-a no navegador para ver a página inicial do aplicativo. Se a página da Web não renderizar corretamente ou retornar um erro 502 Bad Gateway, o aplicativo ainda está começando em segundo plano. Aguarde alguns minutos e tente novamente.

Captura de tela do aplicativo Java Liberty implantado com sucesso no AKS.

Limpar os recursos

Para evitar cobranças do Azure, limpe recursos desnecessários. Quando o cluster não for mais necessário, use o comando az group delete para remover o grupo de recursos, o serviço de contêiner, o registro de contêiner, o banco de dados e todos os recursos relacionados:

az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait

Próximas etapas

Você pode saber mais nas referências a seguir:

Para obter mais informações sobre como implantar a família do IBM WebSphere no Azure, confira Quais são as soluções para executar a família de produtos WebSphere no Azure?.