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

Esta página mostra 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.

Antes de começar

Prepare-se para a tarefa seguindo essas etapas:

  • Verifique se você ativou a API Google Kubernetes Engine.
  • Ativar a API do Google Kubernetes Engine
  • Verifique se o SDK do Cloud está instalado.
  • 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, você pode configurar uma janela de manutenção que se repete semanalmente de segunda a sexta-feira.

Para configurar uma janela de manutenção, configure as seguintes sinalizações. Uma janela de manutenção pode ser configurada usando o Console do Google Cloud ou o comando gcloud.

  • --maintenance-window-start é um RFC-5545 DTSTART.
  • --maintenance-window-end é especificado no mesmo formato que --maintenance-window-start, mas é usado apenas para calcular a duração da janela de manutenção. --maintenance-window-end deve estar no futuro, relativo a --maintenance-window-start.
  • --maintenance-window-recurrence é um RFC-5545 RRULE. Esse é um formato extremamente flexível com várias maneiras de especificar regras de recorrência.

Observação: os valores de cada uma dessas sinalizações precisam estar entre aspas (").

Como criar uma janela de manutenção simples

A sinalização --maintenance-window, que geralmente está disponível, permite que você especifique uma janela de manutenção diária de quatro horas usando um formato simplificado. Você o define como um carimbo de data/hora de 24 horas em UTC, por exemplo, 16:00. Observação: ao usar o Console do Google Cloud, os horários são sempre exibidos usando o fuso horário local.

A janela de manutenção é exibida todos os dias nesse horário e é exibida por quatro horas.

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

gcloud

Para criar um novo cluster com uma janela de manutenção, use o comando gcloud container clusters create e inclua as sinalizações --maintenance-window-start, --maintenance-window-end e --maintenance-window-recurrence.

gcloud container clusters create [CLUSTER_NAME] \
  --maintenance-window-start "[TIMESTAMP]" \
  --maintenance-window-end "[TIMESTAMP]" \
  --maintenance-window-recurrence "[RRULE]"

Observação: os valores de cada uma dessas sinalizações precisam estar entre aspas (").

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

Para criar um novo cluster com uma janela de manutenção, siga as etapas a seguir:

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

    Acessar o menu do Google Kubernetes Engine

  2. Clique em Criar cluster.

  3. Escolha o Cluster padrão ou um modelo apropriado para a carga de trabalho. Se você escolher o modelo Altamente disponível, será criado um cluster regional com uma janela de manutenção padrão.

  4. Configure o cluster como quiser.

  5. Para personalizar a janela de manutenção ou se você tiver usado um modelo de criação de cluster que não inclua uma janela de manutenção por padrão, clique em Disponibilidade, rede, segurança e recursos adicionais.

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

  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, use o comando gcloud container clusters update e inclua as sinalizações --maintenance-window-start, --maintenance-window-end e --maintenance-window-recurrence.

gcloud container clusters update [CLUSTER_NAME] \
  --maintenance-window-start "[TIMESTAMP]" \
  --maintenance-window-end "[TIMESTAMP]" \
  --maintenance-window-recurrence "[RRULE]"

Observação: os valores de cada uma dessas sinalizações precisam estar entre aspas (").

É possível usar a sinalização --maintenance-window para criar uma janela de manutenção simples, mas é necessário especificar a hora em UTC e não é permitido especificar a data de início. A primeira ocorrência acontece na próxima ocorrência desse tempo.

gcloud container clusters update my-cluster \
  --maintenance-window "[HH:MM]"

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 tem a forma de 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, adicione a sinalização --clear-maintenance-window.

gcloud container clusters update [CLUSTER_NAME] --clear-maintenance-window

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 tem a forma de um lápis.

  3. No menu suspenso Janela de manutenção, selecione A qualquer momento.

  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.

É 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 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 tem a forma de 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, atualize o cluster e defina o valor da sinalização --remove-maintenance-exclusion como o nome da exclusão de manutenção a ser removida:

gcloud container clusters update [CLUSTER_NAME] \
  --remove-maintenance-exclusion [EXCLUSION-NAME]

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 tem a forma de 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, você pode ver 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 23:59:59 na costa oeste (UTC-7).

Observação: os valores de cada uma dessas sinalizações precisam estar entre aspas (").

gcloud container clusters update [CLUSTER_NAME] \
 --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, incluindo se ela tem uma janela de manutenção e todas as exclusões de manutenção, use o comando gcloud container clusters describe.

A seguir