Plano de dados gerenciado

O Cloud Service Mesh gerenciado permite automatizar as atualizações de proxy e gateway injetado na malha de serviço. Quando você ativa o plano de dados gerenciado, o Google atualiza automaticamente os proxies sidecar e os gateways injetados em conjunto com o plano de controle gerenciado, reiniciando as cargas de trabalho para injetar novamente as versões mais recentes do proxy. Esse lançamento começa após o upgrade do plano de controle e geralmente é concluído em duas semanas.

O plano de dados gerenciado depende do canal de lançamento do GKE. Se você mudar o canal de lançamento do GKE enquanto o plano de dados gerenciado estiver ativado, o Cloud Service Mesh gerenciado vai atualizar os proxies de todas as cargas de trabalho atuais, como uma implementação de plano de dados gerenciado.

Se desativado, o gerenciamento de proxy é feito de forma passiva, determinado pelo ciclo de vida natural dos pods no cluster, e precisa ser acionado manualmente pelo usuário para controlar a taxa de atualização.

O plano de dados gerenciado faz o upgrade dos proxies removendo os pods que executam versões mais antigas do proxy. As remoções são feitas gradualmente, respeitando o orçamento de interrupção de pods e controlando a taxa de alteração.

Quando novas versões do plano de dados do Cloud Service Mesh são implantadas

Plano de dados gerenciado Eventos que acionam uma nova implantação do plano de dados do Cloud Service Mesh
Atualizações ativas do Cloud Service Mesh
Ativamente, quando novas versões estão disponíveis.1
Criação de novos pods
Quando você ou o escalonamento automático horizontal de pods implantam novas cargas de trabalho
Janelas de manutenção do GKE
Quando os nós são substituídos durante uma janela de manutenção do GKE
Ativado
Desativado

1 As atualizações ativas do Cloud Service Mesh substituem automaticamente Pods nas cargas de trabalho, exceto para StatefulSets, Jobs, DaemonSets e Pods injetados manualmente. As atualizações ativas do Cloud Service Mesh respeitam os orçamentos de interrupção de Pod.

  • As atualizações ativas de baixa prioridade coincidem com as janelas de manutenção do GKE.
  • As atualizações ativas de alta prioridade podem acontecer assim que o Cloud Service Mesh as disponibiliza para o cluster, sem respeitar as janelas de manutenção do GKE. As atualizações ativas de alta prioridade geralmente têm pelo menos uma CVE associada.

Ative o plano de dados gerenciado se você não quiser gerenciar o ciclo de vida do plano de dados do Cloud Service Mesh e se as cargas de trabalho puderem tolerar a substituição de pods a qualquer momento.

Desative o plano de dados gerenciado se quiser ter controle total sobre o tempo de todas as atualizações do plano de dados do Cloud Service Mesh.

As notificações de manutenção não são enviadas por padrão. Para mais informações, neste documento, consulte Ativar notificações de manutenção para o plano de dados gerenciado.

Limitações

O plano de dados gerenciado não gerencia o seguinte:

  • Pods não injetados
  • Pods injetados manualmente
  • Jobs
  • StatefulSets
  • DaemonSets

Se você tiver provisionado o Cloud Service Mesh gerenciado em um cluster mais antigo, poderá ativar o gerenciamento do plano de dados para todo o cluster:

kubectl annotate --overwrite controlplanerevision -n istio-system \
REVISION_LABEL \
mesh.cloud.google.com/proxy='{"managed":"true"}'

Como alternativa, é possível ativar seletivamente o plano de dados gerenciado para um namespace ou pod específico, anotando-o com a mesma anotação. Se você controla componentes individuais de forma seletiva, a ordem de precedência é a revisão do plano de controle, o namespace e o pod.

O serviço pode levar até 10 minutos para gerenciar os proxies no cluster. Execute o seguinte comando para verificar o status:

gcloud container fleet mesh describe --project FLEET_PROJECT_ID

Resposta esperada

membershipStates:
  projects/PROJECT_NUMBER/locations/global/memberships/CLUSTER_NAME:
    servicemesh:
      dataPlaneManagement:
        details:
        - code: OK
          details: Service is running.
        state: ACTIVE
    state:
      code: OK
      description: 'Revision(s) ready for use: asm-managed-rapid.'

Se o serviço não ficar pronto em 10 minutos, consulte Status do plano de dados gerenciado para ver as próximas etapas.

Desativar o plano de dados gerenciado (opcional)

Se você estiver provisionando o Cloud Service Mesh gerenciado em um novo cluster, poderá desativar completamente o plano de dados gerenciado ou para namespaces ou pods individuais. O plano de dados gerenciado continuará desativado para os clusters atuais em que foi desativado por padrão ou manualmente.

Para desativar o plano de dados gerenciado no nível do cluster e voltar a gerenciar os proxies sidecar, encontre cada controlplanerevision e altere cada anotação.

  1. Encontre todas as revisões do plano de controle:

    kubectl get controlplanerevisions -n istio-system
    
  2. Mude a anotação:

    kubectl annotate --overwrite controlplanerevision CONTROL_PLANE_REVISION_NAME -n istio-system mesh.cloud.google.com/proxy='{"managed":"false"}'
    

    Repita essa etapa para cada revisão do plano de controle.

    Substitua CONTROL_PLANE_REVISION_NAME pela saída do comando anterior.

    Para desativar o plano de dados gerenciado de um namespace:

    kubectl annotate --overwrite namespace NAMESPACE \
     mesh.cloud.google.com/proxy='{"managed":"false"}'
    

    Para desativar o plano de dados gerenciado de um pod:

    kubectl annotate --overwrite pod POD_NAME \
     mesh.cloud.google.com/proxy='{"managed":"false"}'
    

Ativar janelas de manutenção para o plano de dados gerenciado

Se você tiver uma janela de manutenção do GKE configurada, os upgrades ativos vão começar no início da próxima janela de manutenção disponível e continuar sem pausa até que todos os pods gerenciados tenham sido atualizados (geralmente 12 horas). A janela de manutenção não é observada para lançamentos relacionados a CVEs.

O Cloud Service Mesh usa a janela de manutenção do GKE para se alinhar ao GKE.

Ativar notificações de manutenção para o plano de dados gerenciado

É possível solicitar uma notificação sobre a futura manutenção do plano de dados gerenciados programada em uma janela de manutenção até uma semana antes da manutenção ser programada. As notificações de manutenção não são enviadas por padrão. Você também precisa configurar uma janela de manutenção do GKE antes de receber notificações. Quando ativadas, as notificações são enviadas pelo menos dois dias antes da operação de upgrade.

Para ativar as notificações de manutenção do plano de dados gerenciado:

  1. Acesse a página Comunicação.

    Acesse a página Comunicação.

  2. Na linha Upgrade do Cloud Service Mesh, na coluna E-mail, selecione o botão de opção para ativar as notificações de manutenção.

Cada usuário que quer receber notificações precisa aceitar separadamente. Se você quiser definir um filtro de e-mail para essas notificações, a linha de assunto será:

Upcoming upgrade for your Cloud Service Mesh cluster "CLUSTER_LOCATION/CLUSTER_NAME".

O exemplo a seguir mostra uma notificação típica de manutenção do plano de dados gerenciados:

Assunto: Futuro upgrade para o cluster do Cloud Service Mesh "<location/cluster-name>"

Olá, usuário do Cloud Service Mesh,

O upgrade dos componentes do Cloud Service Mesh no seu cluster ${instance_id} (https://console.cloud.google.com/kubernetes/clusters/details/${instance_id}/details?project=${project_id}) está programado para ${scheduled_date_human_readable} às ${scheduled_time_human_readable}.

É possível conferir as notas da versão (https://cloud.google.com/service-mesh/docs/release-notes) para saber mais sobre a nova atualização.

Caso essa manutenção seja reprogramada, você receberá outro e-mail com informações.

Atenciosamente,

Equipe do Cloud Service Mesh

(c) 2023 Google LLC, 1600, Amphitheater Parkway, Mountain View, CA 94043 Enviamos este aviso para informar sobre mudanças importantes no Google Cloud Platform ou na sua conta. Para desativar as notificações sobre janelas de manutenção, mude suas preferências: https://console.cloud.google.com/user-preferences/communication?project=${project_id}