Nesta página, descrevemos como o Google Kubernetes Engine (GKE) publica notificações de cluster no Pub/Sub com informações sobre eventos relevantes para a configuração do cluster, como upgrades e boletins de segurança disponíveis.
Para saber como configurar notificações de cluster, consulte Receber notificações de cluster.
Visão geral
Quando ocorrem determinados eventos relevantes para os clusters do GKE, como upgrades programados importantes ou boletins de segurança disponíveis, o GKE publica notificações sobre esses eventos como mensagens nos tópicos do Pub/Sub que você configura. Você pode receber essas notificações em uma assinatura do Pub/Sub , fazer a integração com serviços de terceiros e filtrar os tipos de notificação que você quer receber.
Benefícios
O uso do Pub/Sub para receber notificações de cluster oferece os seguintes benefícios:
- Você recebe informações proativas sobre atualizações programadas para um cluster, o que permite planejar melhor os testes e as qualificações e ajudar a garantir um processo de upgrade tranquilo e previsível.
- Você recebe notificações quando os boletins de segurança específicos dos clusters são emitidos, o que fornece informações precisas de risco e impacto.
- Você receberá uma notificação quando houver uma nova versão do GKE para a qual será possível fazer upgrade. Antes, era preciso verificar as notas da versão do GKE ou a API GKE para descobrir quando uma nova versão do GKE foi lançada.
- Você recebe uma notificação quando o GKE ou um usuário inicia upgrades de cluster, fornecendo mais visibilidade às operações em segundo plano do cluster.
- O Pub/Sub é altamente extensível, o que oferece flexibilidade para a forma como você processa as notificações recebidas. Por exemplo, é possível fazer a integração com o Slack para encaminhar as notificações a um canal do Slack, ou iniciar as as funções do Cloud Run para executar processos personalizados.
- Quando processos personalizados forem necessários (por exemplo, orquestrar um fluxo de trabalho de preparo para produção e teste e certificar um upgrade), use a notificação para acionar esses fluxos de trabalho automaticamente.
Tipos de notificação de upgrade
O GKE envia os seguintes tipos de notificação de cluster:
É possível filtrar as notificações recebidas para que você receba
notificações apenas de eventos relevantes. É possível filtrar as notificações de cluster especificando um
valor para filter
na sinalização --notification-config
ao
ativar as notificações de cluster
ou ao configurar sua assinatura do Pub/Sub.
SecurityBulletinEvent
Quando o GKE emite um boletim de segurança correlacionado diretamente à
configuração ou versão do cluster, o GKE envia uma notificação
SecurityBulletinEvent
fornecendo informações sobre a vulnerabilidade, impacto e, se aplicável,
as ações que você pode realizar.
UpgradeAvailableEvent
Quando uma nova versão é disponibilizada em um canal de lançamento,
o GKE envia uma notificação UpgradeAvailableEvent
aos clusters nesse canal de lançamento para informar aos clusters que
uma nova versão já está disponível. Esta notificação fornece uma semana de aviso com antecedência para versões de patch e pelo menos duas a quatro semanas para versões secundárias
(dependendo do canal). Para mais informações, consulte Quais versões estão disponíveis em
um canal.
UpgradeAvailableEvent
para todas as novas versões que os clusters possam fazer upgrade para, incluindo
patches na versão secundária atual e na próxima versão secundária.
Se você usar os pools de nós do Windows Server, as informações da versão do Windows serão enviadas como parte da notificação UpgradeAvailableEvent
.
UpgradeEvent
Quando um upgrade é iniciado por você ou pelo GKE, o GKE
envia uma notificação UpgradeEvent
informando que um upgrade já foi iniciado. O ideal é usar o tipo de notificação
UpgradeAvailableEvent
para acompanhar o futuro upgrade e
fazer upgrade com antecedência ou tomar as medidas necessárias para se preparar,
como a configuração de janelas de manutenção.
A notificação UpgradeEvent
é enviada no início da operação de upgrade.
O ID da operação é transmitido na mensagem.
Como filtrar notificações
É possível filtrar as notificações de cluster para garantir que você receba apenas as notificações que quiser. É possível aplicar a filtragem de uma das seguintes maneiras:
Como filtrar notificações no GKE
É possível configurar a filtragem para um ou mais tipos de notificação disponíveis ao
ativar as notificações de cluster especificando valores para filter
na
sinalização --notification-config
. filter
usa uma lista delimitada por barra vertical ( | )
dos tipos de notificação que você quer receber.
Por exemplo, especificar filter="UpgradeEvent|SecurityBulletinEvent"
instrui o GKE
a enviar notificações somente para os tipos de notificação
UpgradeEvent
e SecurityBulletinEvent
.
A filtragem de notificações usando filter
tem os seguintes benefícios:
- Mais fácil de usar, porque você filtra o tipo de notificação sem usar uma sintaxe específica.
- As notificações filtradas não são enviadas ao Pub/Sub. Portanto, você não é cobrado por mensagens não entregues.
- Você pode editar a configuração do filtro a qualquer momento.
Para instruções sobre como filtrar notificações no GKE, consulte Receber notificações de cluster.
Como filtrar notificações no Pub/Sub
O Pub/Sub é compatível com a filtragem de mensagens na sua assinatura usando uma sintaxe de filtragem. Quando você usa esse método, o GKE entrega todos os tipos de notificação ao tópico do Pub/Sub. O Pub/Sub filtra mensagens com base na configuração de assinatura e entrega as mensagens que você quer receber.
Por exemplo, é possível filtrar por notificações UpgradeEvent
e UpgradeAvailableEvent
usando a seguinte sintaxe na sua assinatura:
attributes.type_url = "type.googleapis.com/google.container.v1beta1.UpgradeEvent" OR "type.googleapis.com/google.container.v1beta1.UpgradeAvailableEvent"
Você ainda será cobrado pelas mensagens não entregues filtradas pela sua assinatura. Também não é possível modificar os filtros depois de configurar a assinatura. No entanto, a sintaxe de filtragem é mais extensível do que a filtragem no GKE.
Para saber mais sobre como filtrar sua assinatura do Pub/Sub, consulte Como filtrar mensagens.
Como consumir mensagens do Pub/Sub
As mensagens do Pub/Sub contêm dois campos: data
(string) e attributes
(mapa de string a string).
Para notificações do GKE, o campo data
contém informações
legíveis. O campo attributes
tem informações genéricas de notificação,
como o tipo e o ID do projeto, o nome e o local do cluster.
O campo attributes.payload
é uma string JSON analisável que contém informações
de notificação específicas, como os detalhes de um boletim de segurança.
As notificações sempre contêm os seguintes atributos:
Atributo | Descrição | Exemplo |
---|---|---|
project_id |
O número do projeto que é o proprietário do cluster. | 123456789 |
cluster_location |
O local do cluster. | us-central1-c |
cluster_name |
O nome do cluster. | example-cluster |
type_url |
O tipo de notificação. | type.googleapis.com/google.container.v1beta1.UpgradeEvent
|
payload |
Uma string JSON analisável com informações específicas de notificação. | { "resourceType":"MASTER", "operation":"operation-1595889094437-87b7254a", "operationStartTime":"2020-07-27T22:31:34.437652293Z", "currentVersion":"1.15.12-gke.2", "targetVersion":"1.15.12-gke.9"} |
O GKE sempre enviará tipos de notificação beta
. No entanto, é possível
analisar o payload para exibir o tipo de notificação do GA correspondente,
se ele estiver disponível.
Exemplos de mensagens de notificação de cluster
Além do texto no campo data
, cada mensagem que o GKE envia para o
Pub/Sub tem valores específicos nos campos attributes.type_url
e attributes.payload
. As tabelas a seguir mostram exemplos das
informações que você pode receber para cada tipo de notificação:
SecurityBulletinEvent
Veja um exemplo de saída de uma mensagem SecurityBulletinEvent
:
Atributos | |
---|---|
type_url |
type.googleapis.com/google.container.v1beta1.SecurityBulletinEvent |
payload |
{ "resourceTypeAffected":"RESOURCE_TYPE_CONTROLPLANE", "bulletinId":"GCP-2021-001", "cveIds":[ "CVE-2021-3156" ], "severity":"Medium", "briefDescription":"A vulnerability was recently discovered in the Linux utility sudo, described in CVE-2021-3156, that may allow an attacker with unprivileged local shell access on a system with sudo installed to escalate their privileges to root on the system.", "affectedSupportedMinors":["1.18", "1.19"], "patchedVersions":["1.18.9-gke.1900", "1.19.9-gke.1900"], "suggestedUpgradeTarget":"1.19.9-gke.1900", "bulletinUri":"https://cloud.google.com/anthos/clusters/docs/security-bulletins#gcp-2021-001" } |
UpgradeAvailableEvent
Veja um exemplo de saída de uma mensagem UpgradeAvailableEvent
:
Atributos | |
---|---|
type_url |
type.googleapis.com/google.container.v1beta1.UpgradeAvailableEvent |
payload |
{ "version":"1.17.15-gke.800", "resourceType":"MASTER", "releaseChannel":{"channel":"RAPID"}, "windowsVersions": [ { "imageType": "WINDOWS_SAC", "osVersion": "10.0.18363.1198", "supportEndDate": { "day": 10, "month": 5, "year": 2022 } }, { "imageType": "WINDOWS_LTSC", "osVersion": "10.0.17763.1577", "supportEndDate": { "day": 9, "month": 1, "year": 2024 } } ] } |
UpgradeEvent
Veja um exemplo de saída de uma mensagem UpgradeEvent
:
Atributos | |
---|---|
type_url |
type.googleapis.com/google.container.v1beta1.UpgradeEvent |
payload |
{ "resourceType":"MASTER", "operation":"operation-1595889094437-87b7254a", "operationStartTime":"2020-07-27T22:31:34.437652293Z", "currentVersion":"1.15.12-gke.2", "targetVersion":"1.15.12-gke.9"} |
A seguir
- Saiba como receber notificações de cluster.
- Saiba como configurar notificações de cluster para serviços de terceiros.