Um Deployment é um tipo comum de workload do Kubernetes que permite que você gerencie aplicações stateless. Ele garante que um número especificado de Pods réplica esteja sempre em execução no seu cluster, no estado definido por você. Este tópico descreve como criar uma aplicação stateless em um cluster do Container Service for Kubernetes (ACK) usando o console do ACK e o kubectl.
Antes de começar
Antes de criar um workload, leia Workloads para entender os conceitos básicos e as principais considerações. Este tópico está dividido nas seguintes seções:
Crie um Deployment: Fornece guias de início rápido sobre como criar um Deployment usando o console e o kubectl.
Configuration parameters: Explica os parâmetros de configuração do console e fornece um arquivo yaml de exemplo para o kubectl.
Os exemplos neste tópico usam uma imagem pública. Para fazer o pull de uma imagem pública, seu cluster ou nós precisam ter acesso à internet pública. Ative esse acesso de uma das seguintes formas:
Ative o acesso à rede pública para um cluster (Recomendado): Crie um gateway NAT para a VPC onde o cluster está implantado. Isso fornece acesso à internet pública para todos os recursos no cluster.
Atribua um static public IP address a um nó: Nós com um endereço IP público podem fazer o pull de imagens públicas. No entanto, você deve atribuir um endereço IP público a cada nó onde implantar o workload.
Crie um Deployment
Use o console
As etapas a seguir apresentam um processo simplificado para criar um workload. Siga estas etapas para implantar a aplicação e verifique sua aplicação rapidamente. Depois de se familiarizar com as operações básicas, crie workloads mais complexos e consulte Configuration parameters para personalizar seu workload.
-
Configure basic application information
-
Faça login no ACK console e clique em Clusters no painel de navegação à esquerda. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, escolha . Na página Deployments, clique em Create from Image.

-
Na página Basic Information, configure as definições básicas da aplicação. Em seguida, clique em Next.

-
-
Configure the container
Na seção Container Configuration, configure o Image Name e a Port. As outras configurações são opcionais e você pode manter os valores padrão. Em seguida, clique em Next para abrir a página do assistente Advanced Settings. O endereço da imagem é o seguinte.
ImportantePara fazer o pull desta imagem, você precisa ativar o acesso à internet pública para o seu cluster. Se você manteve a opção Configure SNAT for VPC selecionada ao criar o cluster, o acesso à internet pública já está ativado. Caso contrário, consulte Ative o acesso à rede pública para um cluster.

-
Configure advanced settings
Na página Advanced, configure o controle de acesso, o dimensionamento e as definições de agendamento. Na seção Access Control, configure como expor os Pods de backend e clique em OK. Em seguida, clique em Create na parte inferior da página.
ImportanteEsta etapa cria um service do tipo LoadBalancer para expor o workload. A instância do Server Load Balancer (SLB) associada incorre em taxas. Para mais informações, consulte Pay-as-you-go. Se você não precisar mais da instância do SLB, libere-a prontamente para evitar cobranças desnecessárias.

-
View the application
Após a criação da aplicação, a página Complete é exibida. No painel Creation Task Submitted, clique em View Details. Clique na aba Access Method, encontre o service recém-criado (nginx-test-svc) e, em seguida, clique no link na coluna External Endpoint para acessar a página de boas-vindas do NGINX.


Você pode usar as opções View, Edit ou Redeploy para o workload criado.

Use o kubectl
Antes de criar um workload, conecte-se ao seu cluster ACK usando o kubectl e bash. Para mais informações, consulte Obtain the kubeconfig file of a cluster and use kubectl to connect to the cluster.
-
Copie a seguinte configuração yaml e salve-a em deployment.yaml. Esta configuração define um Deployment e um service do tipo
LoadBalancerpara acesso externo. -
Execute o seguinte comando para criar o Deployment e o service:
Saída esperada:
-
Execute o seguinte comando para consultar o endereço IP público do service:
Saída esperada:
-
Insira o endereço IP público do Nginx (
106.14.**.***) em um navegador para acessar o contêiner Nginx do workload.
Parâmetros de configuração
Parâmetros do console
Informações básicas

|
Parâmetro |
Descrição |
|
Name |
O nome do workload. Os nomes dos Pods são derivados deste nome. |
|
Namespace |
O namespace que contém o workload. |
|
Replicas |
O número de réplicas de Pods. Valor padrão: 2. |
|
Type |
O tipo do workload. Para mais informações sobre como selecionar um tipo de workload, consulte Crie um workload. |
|
Label |
Os rótulos do workload. |
|
Annotations |
As anotações do workload. |
|
Synchronize Timezone |
Especifica se o contêiner usa o mesmo fuso horário do seu nó host. |
Configuração do contêiner
Configuração avançada
Cartão de configuração | Parâmetro | Descrição |
Access Control | Services | Um service fornece um endpoint unificado e estável da Camada 4 (camada de transporte) para um grupo de Pods. É um recurso obrigatório para expor um workload. Os Services suportam vários tipos, incluindo Cluster IP, Node Port e Load Balancer. Antes de configurar um service, consulte Service management para entender os conceitos básicos. |
Ingresses | Um Ingress fornece um ponto de entrada da Camada 7 (camada de aplicação) para vários Services em um cluster e encaminha requisições para diferentes Services com base na correspondência de nome de domínio. Antes de usar um Ingress, instale um controlador de Ingress. O ACK fornece várias opções para diferentes cenários. Para mais informações, consulte Comparison of NGINX Ingress Controller, ALB Ingress Controller, and MSE Ingress gateways. | |
Scaling | Horizontal Pod Autoscaler (HPA) | O Horizontal Pod Autoscaler (HPA) dimensiona automaticamente o número de Pods com base nas métricas de desempenho do contêiner. Isso ajuda a ajustar o total de recursos usados pelo seu workload em resposta a flutuações na carga de negócios, escalando horizontalmente para lidar com cargas altas e reduzindo para economizar recursos durante cargas baixas. Para mais informações, consulte Use a HorizontalPodAutoscaler to automatically scale Pods. |
Cron Horizontal Pod Autoscaler (CronHPA) | O Cron Horizontal Pod Autoscaler (CronHPA) dimensiona workloads em horários agendados. Isso é adequado para cenários com alterações cíclicas e previsíveis na carga de negócios, como os picos de tráfego em plataformas de redes sociais após o almoço e o jantar. Para mais informações, consulte Use a CronHPA to automatically scale Pods. | |
Scheduling | Upgrade strategy | A estratégia usada para substituir Pods antigos por novos quando a configuração do Pod muda.
|
| Afinidade, anti-afinidade e tolerâncias são usados para controlar como os Pods são agendados nos nós. Essas operações são complexas e requerem planejamento antecipado. Para mais informações, consulte Scheduling. | |
Labels and annotations | Pod labels | Adicione um rótulo a cada Pod que pertence ao workload. Em um cluster, recursos como workloads e Services usam rótulos para corresponder aos Pods. Por padrão, o ACK adiciona um rótulo no formato |
Pod annotations | Adiciona anotações a cada Pod neste workload. Alguns recursos no ACK usam anotações; adicione ou modifique conforme necessário ao usar esses recursos. |
yaml de exemplo de workload
Referência
Para aplicações que requerem armazenamento estável e persistente, como bancos de dados, use um StatefulSet. Para mais informações, consulte Crie um workload stateful (StatefulSet).
Se você encontrar problemas ao criar um workload, consulte Workloads FAQ.
Se um Pod estiver em um estado anormal, consulte Troubleshoot Pod exceptions.







