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

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.

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 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.

    Acessar o menu do Google Kubernetes Engine

  2. Clique no botão Criar cluster.

  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 RRULE diretamente, alterne para o 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. Clique no botão Editar do cluster, que se parece com um lápis.

  3. Na seção Janela de manutenção, 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 RRULE diretamente, alterne para o editor personalizado.

  4. Clique em Salvar.

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. Clique no botão Editar do cluster, que se parece com um lápis.

  3. Na lista suspensa Janela de manutenção, selecione Desativado.

  4. Clique em Salvar.

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 ou modificar uma exclusão de manutenção para um cluster atual:

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

    Acessar o menu do Google Kubernetes Engine

  2. Clique no botão Editar do cluster, que se parece com um lápis.

  3. Na seção Exclusão de manutenção, selecione Adicionar exclusão de manutenção. Selecionar o horário de início e de término.

  4. Clique em Salvar.

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

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. Clique no botão Editar do cluster, que se parece com um lápis.

  3. Na seção Exclusão de manutenção, clique no X ao lado da exclusão a ser removida.

  4. Clique em Salvar.

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