Como configurar janelas de manutenção e exclusões

Nesta página, mostramos como usar janelas de manutenção e exclusões de manutenção para controlar quando a manutenção automática do cluster, como upgrades automáticos, pode ou não ocorrer nos clusters do Google Kubernetes Engine (GKE).

Antes de começar

Antes de começar, verifique se você realizou as tarefas a seguir:

Defina as configurações padrão da gcloud usando um dos métodos a seguir:

  • Use gcloud init se quiser orientações para definir os padrões.
  • Use gcloud config para definir individualmente a região, a zona e o ID do projeto.

Como usar o gcloud init

Se você receber o erro One of [--zone, --region] must be supplied: Please specify location, conclua esta seção.

  1. Execute gcloud init e siga as instruções:

    gcloud init

    Se você estiver usando SSH em um servidor remoto, utilize a sinalização --console-only para impedir que o comando inicie um navegador:

    gcloud init --console-only
  2. Siga as instruções para autorizar a gcloud a usar sua conta do Google Cloud.
  3. Crie uma nova configuração ou selecione uma atual.
  4. Escolha um projeto do Google Cloud.
  5. Escolha uma zona padrão do Compute Engine para clusters zonais ou uma região para clusters regionais ou de Autopilot.

Como usar o gcloud config

  • Defina o ID do projeto padrão:
    gcloud config set project PROJECT_ID
  • Se você estiver trabalhando com clusters zonais, defina a zona do Compute padrão:
    gcloud config set compute/zone COMPUTE_ZONE
  • Se você estiver trabalhando com clusters de Autopilot ou regionais, defina a região do Compute padrão:
    gcloud config set compute/region COMPUTE_REGION
  • Atualize gcloud para a versão mais recente:
    gcloud components update

Como configurar uma janela de manutenção

Para configurar uma janela de manutenção, configure quando ela começa, por quanto tempo dura e com que frequência ela é repetida. Por exemplo, é possível configurar uma janela de manutenção que se repete semanalmente de segunda a sexta-feira.

Configure uma janela de manutenção usando o Console do Google Cloud ou o comando gcloud.

Como criar um cluster com uma janela de manutenção simples

Para criar uma janela de manutenção simples em gcloud, especifique a sinalização --maintenance-window. Essa sinalização permite especificar uma janela de manutenção diária de quatro horas usando um formato simplificado.

Para criar um novo cluster com uma janela de manutenção simples, execute o seguinte comando:

gcloud container clusters create cluster-name \
  --maintenance-window start-time

em que:

  • cluster-name é o nome do novo cluster.
  • start-time é definido como um carimbo de data/hora de 24 horas no hora UTC, como 16:00.

A janela de manutenção é executada todos os dias no start-time especificado e é executada por quatro horas.

Como criar um cluster com uma janela de manutenção

É possível criar um novo cluster com uma janela de manutenção usando a ferramenta gcloud ou o Console do Google Cloud.

gcloud

Para criar um novo cluster com uma janela de manutenção, execute o seguinte comando:

gcloud container clusters create cluster-name \
  --maintenance-window-start start-time \
  --maintenance-window-end end-time \
  --maintenance-window-recurrence rrule

em que:

  • cluster-name é o nome do novo cluster.
  • start-time é um RFC-5545 DTSTART.
  • end-time é especificado no mesmo formato que start-time, mas é usado apenas para calcular a duração da janela de manutenção. O valor de end-time precisa ser no futuro, relativo a start-time.
  • rrule é um RFC-5545 RRULE. Esse é um formato extremamente flexível com várias maneiras de especificar regras de recorrência.

Por exemplo, o comando a seguir cria um cluster chamado my-cluster com uma janela de manutenção que começa às 2h UTC de 1º de agosto de 2019, termina quatro horas mais tarde e é exibida diariamente. Saiba mais sobre a formatação de datas e horários.

gcloud container clusters create my-cluster \
  --maintenance-window-start 2019-08-01T02:00:00Z \
  --maintenance-window-end 2019-08-01T06:00:00Z \
  --maintenance-window-recurrence FREQ=DAILY

Console

  1. Acesse o menu do Google Kubernetes Engine no Console do Cloud.

    Acesse o menu do Google Kubernetes Engine

  2. Clique em Criar.

  3. Configure o cluster como quiser.

  4. No painel de navegação, em Clusters, clique em Automação.

  5. Marque a caixa de seleção Ativar janela de manutenção.

  6. Selecione o horário de início e a duração e, em seguida, selecione os dias da semana em que a janela de manutenção ocorre. Para editar diretamente a especificação da regra de recorrência (RRule), selecione Editor personalizado.

  7. Clique em Criar.

Como configurar uma janela de manutenção de um cluster existente

gcloud

Para criar ou atualizar uma janela de manutenção para um cluster existente, execute o seguinte comando:

gcloud container clusters update cluster-name \
  --maintenance-window-start start-time \
  --maintenance-window-end end-time \
  --maintenance-window-recurrence rrule

em que:

  • cluster-name é o nome do cluster existente.
  • start-time é um RFC-5545 DTSTART.
  • end-time é especificado no mesmo formato que start-time, mas é usado apenas para calcular a duração da janela de manutenção. O valor de end-time precisa ser no futuro, relativo a start-time.
  • rrule é um RFC-5545 RRULE. Esse é um formato extremamente flexível com várias maneiras de especificar regras de recorrência.

Console

Para criar ou modificar uma janela de manutenção de um cluster existente:

  1. Acesse o menu do Google Kubernetes Engine no Console do Cloud.

    Acessar o menu do Google Kubernetes Engine

  2. Na lista de clusters, clique no nome do cluster que você quer modificar.

  3. Em Automação, clique em Editar política de manutenção ao lado do campo Janela de manutenção.

  4. Marque a caixa de seleção Ativar janela de manutenção.

  5. Selecione o horário de início e a duração e, em seguida, selecione os dias da semana em que a janela de manutenção ocorre. Para editar a RRule diretamente, selecione Editor personalizado.

  6. Clique em Salvar alterações.

Como concluir manualmente a manutenção incompleta

Se um upgrade ou outra manutenção automática demorar mais do que a janela de manutenção para ser concluído, o GKE tentará interromper as tarefas de manutenção contínuas para retomá-las durante a próxima ocorrência da janela de manutenção. Se você tiver os upgrades automáticos de nós ativados e um upgrade automático for cancelado, os nós podem ficar em um estado de versão mista, mas o cluster continuará a operar normalmente.

Para fazer upgrade do cluster manualmente, cancelar ou reverter um upgrade parcial, acesse Fazer upgrade manual de um cluster.

Como remover uma janela de manutenção

gcloud

Para remover uma janela de manutenção de um cluster, execute o seguinte comando:

gcloud container clusters update cluster-name --clear-maintenance-window

em que cluster-name é o nome do cluster existente.

Console

Para remover uma janela de manutenção:

  1. Acesse o menu do Google Kubernetes Engine no Console do Cloud.

    Acessar o menu do Google Kubernetes Engine

  2. Na lista de clusters, clique no nome do cluster que você quer modificar.

  3. Em Automação, clique em Editar política de manutenção ao lado do campo Janela de manutenção.

  4. Desmarque a caixa de seleção Ativar janela de manutenção.

  5. Clique em Salvar alterações.

Exemplos de janelas de manutenção

Os exemplos a seguir ilustram algumas das diferentes maneiras de configurar uma janela de manutenção. Somente as sinalizações relevantes são mostradas porque as sinalizações usam a mesma sintaxe para criar um novo cluster ou atualizar um já existente.

Semanal às terças e quartas-feiras, a partir de 27 de agosto de 2019, durante todo o dia

Neste exemplo, a diferença entre os carimbos de data/hora de início e término é um dia inteiro. Portanto, a janela de manutenção é exibida por 24 horas nas terças e quartas-feiras.

--maintenance-window-start 2019-08-27T00:00:00Z \
--maintenance-window-end 2019-08-28T00:00:00Z \
--maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=TU,WE'
Diariamente durante a semana, das 9h às 17h UTC-4

Este exemplo mostra como ter uma janela de manutenção diária, mas pular finais de semana. Este exemplo especifica um fuso horário diferente de UTC.

--maintenance-window-start 2019-09-02T09:00:00-04:00 \
--maintenance-window-end 2019-09-02T17:00:00-04:00 \
--maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR'
Semanal às 16h, durante 8 horas, UTC-7

Se você não especificar um fuso horário para --maintenance-window-start, será usado o horário local, conforme configurado na sua conta do Google Cloud. O Console do Google Cloud sempre usa o horário local.

--maintenance-window-start 2019-08-13T16:00:00-7:00 \
--maintenance-window-end 2019-08-14T00:00:00-7:00 \
--maintenance-window-recurrence FREQ=WEEKLY

Como configurar uma exclusão de manutenção

Para configurar uma exclusão de manutenção, configure seu nome (opcional), horário de início e horário de término. A exclusão de manutenção pode abranger vários dias.

A exclusão de manutenção precisa permitir 48 horas de disponibilidade de manutenção em uma janela de 32 dias. A duração das janelas de manutenção afeta diretamente a exclusão máxima de manutenção e pode ser calculada usando a seguinte fórmula:

maximum maintenance exclusion (days) = 32-day rolling window - 48 hours maintenance availability / maintenance window hours per day

Por exemplo, se a janela de manutenção normal for de 4 horas, sua exclusão máxima de manutenção será de 20 dias: (32 - 48/4 = 20).

É possível configurar um máximo de três exclusões de manutenção em um cluster a qualquer momento. É possível remover manualmente as exclusões de manutenção, ocorridas ou não.

É possível configurar uma exclusão de manutenção usando o Console do Google Cloud ou o comando gcloud.

Como criar um cluster com uma exclusão de manutenção

Para criar um cluster com uma exclusão de manutenção:

  1. Acesse o menu do Google Kubernetes Engine no Console do Cloud.

    Acesse o menu do Google Kubernetes Engine

  2. Clique em Criar.

  3. Configure o cluster como quiser.

  4. No painel de navegação, em Cluster, clique em Automação.

  5. Em Exclusões de manutenção, clique em Adicionar exclusão de manutenção.

  6. Selecione um Horário de início e um Horário de término.

  7. Clique em Criar.

Você pode ver um exemplo de exclusão de manutenção para a Black Friday.

Como configurar uma exclusão de manutenção de um cluster existente

gcloud

Para configurar uma exclusão de manutenção para um cluster existente, execute o comando a seguir:

gcloud container clusters update CLUSTER_NAME \
  --add-maintenance-exclusion-name EXCLUSION_NAME
  --add-maintenance-exclusion-start START_DATE_TIME \
  --add-maintenance-exclusion-end END_DATE_TIME

Substitua:

  • CLUSTER_NAME: o nome do cluster.
  • EXCLUSION_NAME: o nome da exclusão de manutenção.
  • START_DATE_TIME: data e hora de início da exclusão.
  • END_DATE_TIME: data e hora de término da exclusão.

Para visualizar os formatos de data e hora compatíveis, execute o gcloud topic datetimes.

Console

Para configurar uma exclusão de manutenção para um cluster existente:

  1. Acesse o menu do Google Kubernetes Engine no Console do Cloud.

    Acessar o menu do Google Kubernetes Engine

  2. Na lista de clusters, clique no nome do cluster que você quer modificar.

  3. Em Automação, ao lado do campo Exclusões de manutenção, clique em Editar exclusões de manutenção.

  4. Em Exclusões de manutenção, clique em Adicionar exclusão de manutenção.

  5. Selecione um Horário de início e um Horário de término.

  6. Clique em Salvar alterações.

Como remover uma exclusão de manutenção

Um cluster pode ter um máximo de três exclusões de manutenção ativas e não executadas a qualquer momento.

gcloud

Para remover uma exclusão de manutenção existente, execute o seguinte comando:

gcloud container clusters update cluster-name \
  --remove-maintenance-exclusion exclusion-name

em que:

  • cluster-name é o nome do cluster existente.
  • exclusion-name é o nome da exclusão de manutenção a ser removida.

Console

Para remover uma exclusão de manutenção de um cluster existente:

  1. Acesse o menu do Google Kubernetes Engine no Console do Cloud.

    Acessar o menu do Google Kubernetes Engine

  2. Na lista de clusters, clique no nome do cluster que você quer modificar.

  3. Em Automação, ao lado do campo Exclusões de manutenção, clique em Editar exclusões de manutenção.

  4. Em Exclusões de manutenção, clique em Excluir item ao lado do campo Horário de término da exclusão que você quer remover.

  5. Clique em Salvar alterações.

Para ver todas as exclusões de manutenção em um cluster, consulte a política de manutenção do cluster.

Exemplo de exclusão de manutenção

O exemplo a seguir evita manutenção durante os quatro dias que abrangem a Black Friday até a Cyber Monday, o período de vendas de maior volume do ano para muitas empresas de varejo. Este exemplo mostra como evitar que uma janela de manutenção ocorra da Black Friday 2019 (29 de novembro de 2019) à Cyber Monday 2019 (2 de dezembro de 2019), da meia-noite na costa leste (UTC-5) às 23h59m59s na costa oeste (UTC-7).

gcloud container clusters update sample-cluster \
 --add-maintenance-exclusion-name black-friday \
 --add-maintenance-exclusion-start 2019-11-29T00:00:00-05:00 \
 --add-maintenance-exclusion-end 2019-12-02T23:59:59-07:00

Como visualizar a política de manutenção de um cluster

Para visualizar a política de manutenção de um cluster, inclusive se ela tem uma janela de manutenção e todas as exclusões de manutenção, use o seguinte comando:

gcloud container clusters describe cluster-name

A seguir