Procedimento de implementação
Preparação de uma carga de trabalho do CCE
- Compre um cluster.
- Faça logon no console do CCE e compre um cluster do CCE (modelo de rede da VPC) ou um cluster Turbo na página Clusters. Selecione CCE Cluster e defina Network Model como VPC network. Para obter detalhes, consulte Compra de um cluster do CCE.
- Depois que o cluster é criado, registre o bloco CIDR do container.
- Adicione este bloco CIDR na área Routes de um gateway dedicado.
- Faça logon no console do APIG e escolha Gateways no painel de navegação.
- Clique no nome do gateway para acessar a página de detalhes.
- Adicione o bloco CIDR do container na área Routes.
- Crie uma carga de trabalho.
- Na página Clusters do console do CCE, clique no nome do cluster para acessar a página de detalhes.
- No painel de navegação, escolha Workloads.
- Clique em Create Workload. Defina Workload Type como Deployment. Para obter detalhes, consulte o Guia de usuário do CCE.
Na área Advanced Settings > Labels and Annotations, defina rótulos de pod para alternar a carga de trabalho e a versão de serviço. Neste exemplo, defina app=deployment-demo e version=v1. Se você criar uma carga de trabalho importando um arquivo YAML, adicione rótulos de pod nesse arquivo. Para obter detalhes sobre os rótulos do pod, consulte Rótulos e anotações de pods
Adicione rótulos de pod em um arquivo YAML:
spec: replicas: 2 selector: matchLabels: app: deployment-demo version: v1 template: metadata: creationTimestamp: null labels: app: deployment-demo version: v1
Método 1: abrir uma carga de trabalho do CCE criando um canal de balanceamento de carga
- Crie um canal de balanceamento de carga.
- Vá para o console do APIG e escolha Gateways no painel de navegação.
- Escolha API Management > API Policies.
- Na guia Load Balance Channels, clique em Create Load Balance Channel.
- Defina as informações básicas.
Tabela 1 Parâmetros de informações básicas Parâmetro
Descrição
Name
Insira um nome que esteja em conformidade com regras específicas para facilitar a pesquisa. Neste exemplo, insira VPC_demo.
Port
Porta de container de uma carga de trabalho para serviços de abertura. Defina esse parâmetro como 80, que é a porta HTTP padrão.
Routing Algorithm
Selecione WRR. Esse algoritmo será usado para encaminhar solicitações para cada um dos servidores de nuvem que você selecionar na ordem de peso do servidor.
Type
Selecione Microservice.
- Configure informações de microsserviços.
Tabela 2 Configuração de microsserviços Parâmetro
Descrição
Microservice Type
O Cloud Container Engine (CCE) é sempre selecionado.
Cluster
Selecione o cluster comprado.
Namespace
Selecione um namespace no cluster. Neste exemplo, selecione default.
Workload Type
Selecione Deployment. Este parâmetro deve ser o mesmo que o tipo da carga de trabalho criada.
Service Label Key
Selecione o rótulo do pod app e seu valor deployment-demo da carga de trabalho criada.
Service Label Value
- Configure um grupo de servidores.
Tabela 3 Configuração do grupo de servidores Parâmetro
Descrição
Server Group Name
Digite server_group_v1.
Weight
Digite 1.
Backend Service Port
Digite 80. Isso deve ser o mesmo que a porta do container na carga de trabalho.
Description
Digite "Server group with version v1".
Tag
Selecione o rótulo do pod version=v1 da carga de trabalho criada.
- Configure verificação de integridade.
Tabela 4 Configuração de verificação de integridade Parâmetro
Descrição
Protocol
Padrão: TCP.
Check Port
Porta do servidor back-end no canal.
Healthy threshold
Padrão: 2. Este é o número de verificações consecutivas bem-sucedidas necessárias para que um servidor em nuvem seja considerado íntegro.
Unhealthy Threshold
Padrão: 5. Esse é o número de verificações consecutivas com falha necessárias para que um servidor em nuvem seja considerado não íntegro.
Timeout (s)
Padrão: 5. Este é o tempo limite usado para determinar se uma verificação de integridade falhou.
Interval (s)
Padrão: 10. Este é o intervalo entre verificações consecutivas.
- Clique em Finish.
Na lista de canais de balanceamento de carga, clique em um nome de canal para exibir os detalhes.
- Defina as informações básicas.
- Abra uma API.
- Crie um grupo de APIs.
- Escolha API Management > API Groups.
- Clique em Create API Group e escolha Create Directly.
- Configure as informações do grupo e clique em OK.
- Crie uma API e vincule o canal de balanceamento de carga anterior a ela.
- Clique no nome do grupo para acessar a página de detalhes. Na guia APIs, clique em Create.
- Configure as informações de front-end e clique em Next.
Tabela 5 Configuração de front-end Parâmetro
Descrição
API Name
Insira um nome que esteja em conformidade com regras específicas para facilitar a pesquisa.
Group
Selecione o grupo de APIs anterior.
URL
Method: método de solicitação da API. Defina este parâmetro como ANY.
Protocol: protocolo de solicitação da API. Defina este parâmetro como HTTPS.
Subdomain Name: o sistema aloca automaticamente um nome de subdomínio para cada grupo de APIs para testes internos. O nome do subdomínio pode ser acessado 1000 vezes por dia.
Path: caminho para solicitar a API.
Gateway Response
Selecione uma resposta a ser exibida se o gateway falhar ao processar uma solicitação de API. Padrão: default.
Matching
Selecione Prefix match.
Authentication Mode
Modo de autenticação da API. Selecione None. (None: não recomendado para serviços reais. Todos os usuários terão acesso à API.)
- Configure as informações de back-end e clique em Next.
Tabela 6 Parâmetros para definir um serviço de back-end HTTP/HTTPS Parâmetro
Descrição
Load Balance Channel
Determine se o serviço de back-end será acessado usando um canal de balanceamento de carga. Para este exemplo, selecione Configure.
URL
Method: método de solicitação da API. Defina este parâmetro como ANY.
Protocol: defina este parâmetro como HTTP.
Load Balance Channel: selecione o canal criado.
Path: caminho do serviço de back-end.
- Defina a resposta e clique em Finish.
- Depure a API.
Na guia APIs, clique em Debug. Clique no botão Debug no fundo vermelho. Se o código de status 200 for retornado no resultado da resposta, a depuração será bem-sucedida. Em seguida, vá para a próxima etapa. Caso contrário, corrija o erro indicado na mensagem de erro.
- Publique a API.
Na guia APIs, clique em Publish, mantenha a opção padrão RELEASE e clique em OK. Quando o ponto de exclamação no canto superior esquerdo do botão Publish desaparecer, a publicação foi bem-sucedida. Em seguida, vá para a próxima etapa. Caso contrário, corrija o erro indicado na mensagem de erro.
- Crie um grupo de APIs.
- Chame a API.
- Vincule nomes de domínio independentes ao grupo desta API.
Na página de detalhes do grupo, clique na guia Group Information. O nome de domínio de depuração é usado apenas para desenvolvimento e teste e pode ser acessado 1000 vezes por dia. Vincule nomes de domínio independentes para expor APIs no grupo.
Clique em Bind Independent Domain Name para vincular nomes de domínio públicos registrados. Para obter detalhes, consulte Vinculação de um nome de domínio.
- Copie o URL da API.
Na guia APIs, copie o URL da API. Abra um navegador e insira o URL. Quando a resposta de sucesso definida é exibida, a invocação é bem-sucedida.
Figura 1 Cópia do URL
Agora, a carga de trabalho do CCE é aberta criando um canal de balanceamento de carga.
- Vincule nomes de domínio independentes ao grupo desta API.
Método 2: abrir uma carga de trabalho do CCE importando-a
- Importe uma carga de trabalho do CCE.
- Vá para o console do APIG e escolha Gateways no painel de navegação.
- Escolha API Management > API Groups.
- Escolha Create API Group > Import CCE Workload.
- Especifique informações sobre a carga de trabalho do CCE a ser importada.
Tabela 7 Informações sobre a carga de trabalho Parâmetro
Descrição
Group
Padrão: New group.
Cluster
Selecione o cluster comprado.
Namespace
Selecione um namespace no cluster. Neste exemplo, selecione default.
Workload Type
Selecione Deployment. Este parâmetro deve ser o mesmo que o tipo da carga de trabalho criada.
Service Label Key
Selecione o rótulo do pod app e seu valor deployment-demo da carga de trabalho criada.
Service Label Value
Tag
Outro rótulo de pod version=v1 da carga de trabalho é selecionado automaticamente.
- Configure informações da API.
Tabela 8 Informações da API Parâmetro
Descrição
Protocol
Protocolo de solicitação da API. HTTPS é selecionado por padrão.
Request Path
Caminho de solicitação da API para correspondência de prefixo. Padrão: /. Neste exemplo, retenha o valor padrão.
Port
Digite 80. Isso deve ser o mesmo que a porta do container na carga de trabalho.
Authentication Mode
Padrão: None.
CORS
Desativado por padrão.
Timeout (ms)
Tempo limite de back-end. Padrão: 5000.
- Especifique informações sobre a carga de trabalho do CCE a ser importada.
- Clique em OK. A carga de trabalho do CCE é importada, com um grupo de APIs, uma API e um canal de balanceamento de carga gerados.
- Veja a API gerada e o canal de balanceamento de carga.
- Veja a API gerada.
- Clique no nome do grupo de APIs e, em seguida, veja o nome da API, o método de solicitação e o status de publicação na guia APIs.
- Clique na guia Backend Configuration e veja o canal de balanceamento de carga vinculado.
- Veja o canal de balanceamento de carga gerado.
- Escolha API Management > API Policies.
- Na guia Load Balance Channels, clique no nome do canal para exibir os detalhes.
- Verifique se esse canal de balanceamento de carga é o vinculado à API e, em seguida, vá para a próxima etapa. Se não estiver, repita 1.
- Veja a API gerada.
- Abra a API.
Como a importação de uma carga de trabalho do CCE já cria um grupo de APIs e uma API, você só precisa publicar a API em um ambiente.
- Depure a API.
Na guia APIs, clique em Debug. Clique no botão Debug no fundo vermelho. Se o código de status 200 for retornado no resultado da resposta, a depuração será bem-sucedida. Em seguida, vá para a próxima etapa.
- Publique a API.
Na guia APIs, clique em Publish, mantenha a opção padrão RELEASE e clique em OK. Quando o ponto de exclamação no canto superior esquerdo do botão Publish desaparecer, a publicação foi bem-sucedida. Em seguida, vá para a próxima etapa.
- Depure a API.
- Chame a API.
- Vincule nomes de domínio independentes ao grupo desta API.
Na página de detalhes do grupo, clique na guia Group Information. O nome de domínio de depuração é usado apenas para desenvolvimento e teste e pode ser acessado 1000 vezes por dia. Vincule nomes de domínio independentes para expor APIs no grupo.
Clique em Bind Independent Domain Name para vincular nomes de domínio públicos registrados. Para obter detalhes, consulte Vinculação de um nome de domínio.
- Copie o URL da API.
Na guia APIs, copie o URL da API. Abra um navegador e insira o URL. Quando a resposta de sucesso definida é exibida, a invocação é bem-sucedida.
Figura 2 Cópia do URL
Agora, a carga de trabalho do CCE foi aberta importando-a.
- Vincule nomes de domínio independentes ao grupo desta API.
(Opcional) Configuração de rótulos de carga de trabalho para lançamento em escala de cinza
O lançamento em escala de cinza é uma política de lançamento de serviço que muda gradualmente o tráfego de uma versão anterior para uma versão posterior, especificando o peso da distribuição do tráfego. Os serviços são verificados durante o lançamento e a atualização. Se uma versão posterior atender à expectativa, você poderá aumentar a porcentagem de tráfego dessa versão e diminuir a da versão anterior. Repita esse processo até que uma versão posterior represente 100% e uma versão anterior seja reduzida a 0. Em seguida, o tráfego é alternado com sucesso para a versão posterior.
As cargas de trabalho do CCE são configuradas usando o seletor de rótulo do pod para o lançamento em escala de cinza. Você pode implementar e verificar rapidamente novos recursos e alternar servidores para processamento de tráfego. Para obter detalhes, consulte Uso de serviços para implementar o lançamento simples em escala de cinza e a implementação azul-verde.
O seguinte descreve como alternar suavemente o tráfego de V1 para V2 por meio do lançamento em escala de cinza.
- Crie uma carga de trabalho, defina um rótulo de pod com o mesmo valor que o rótulo app da carga de trabalho anterior. Para obter detalhes, consulte a carga de trabalho anterior.
Na página de criação da carga de trabalho, vá para a área Advanced Settings > Labels and Annotations e defina app=deployment-demo e version=v2. Se você criar uma carga de trabalho importando um arquivo YAML, adicione rótulos de pod nesse arquivo.
- Para o grupo de servidores com rótulo de pod version=v1, ajuste o peso do tráfego.
- No console do APIG, escolha Gateways no painel de navegação.
- Escolha API Management > API Policies.
- Na guia Load Balance Channels, clique no nome do canal criado.
- Na área Backend Server Address, clique em Modify.
- Altere o peso para 100 e clique em OK.
Peso é a porcentagem de tráfego a ser encaminhado. Todo o tráfego será encaminhado para os endereços IP do pod no grupo de servidores server_group_v1.
- Crie um grupo de servidores com o rótulo do pod version=v2 e, em seguida, defina o peso do tráfego.
- Na área Backend Server Address, clique em Create Server Group.
Tabela 9 Configuração do grupo de servidores Parâmetro
Descrição
Server Group Name
Digite server_group_v2.
Weight
Digite 1.
Backend Service Port
Digite 80.
Tag
Selecione o rótulo do pod version=v2.
- Clique em OK.
- Na área Backend Server Address, clique em Create Server Group.
- Atualize os endereços do servidor back-end.
Atualize a página para os endereços de servidor back-end. O canal de balanceamento de carga monitora automaticamente os endereços IP do pod da carga de trabalho e adiciona dinamicamente os endereços como endereços de servidor back-end. Conforme mostrado na figura a seguir, as tags app=deployment-demo e version=v2 correspondem automaticamente aos endereços IP do pod (endereços de servidor back-end) da carga de trabalho.
Figura 4 Endereços IP do pod correspondidos automaticamente
100 de 101 (peso do grupo de servidores do peso total) tráfego é distribuído para server_group_v1 e o restante para a versão posterior de server_group_v2.
Figura 5 Clique em Modify no canto superior direito da página.
- Verifique se os novos recursos lançados em V2 por meio da versão em escala de cinza estão funcionando de forma estável.
Se a nova versão atender à expectativa, vá para 6. Caso contrário, o lançamento do novo recurso falhará.
- Ajuste os pesos dos grupos de servidores para diferentes versões.
Diminua gradualmente o peso do server_group_v1 e aumente o do server_group_v2. Repita de 5 a 6 até que o peso do server_group_v1 seja 0 e o do server_group_v2 chegue a 100.
Como mostrado na figura anterior, todas as solicitações são encaminhadas para server_group_v2. Novos recursos são alterados de deployment-demo da carga de trabalho de version=v1 para deployment-demo2 de version=v2 por meio do lançamento em escala de cinza. (Você pode ajustar o peso do tráfego para atender aos requisitos de serviço.)
- Exclua o grupo de servidores back-end server_group_v1 de version=v1.
Agora todo o tráfego foi alterado para o grupo de servidores back-end de version=v2. Você pode excluir o grupo de servidores de version=v1.
- Vá para a página de detalhes do canal de balanceamento de carga no console do APIG, exclua todos os endereços IP do grupo de servidores de version=v1 na área Backend Server Address.
- Clique em Delete à direita desta área para excluir o grupo de servidores de version=v1.
O grupo de servidores back-end server_group_v2 de version=v2 é mantido.