Com o Google Kubernetes Engine (GKE), você recebe orientações prescritivas sobre como otimizar os clusters.
O GKE monitora seus clusters e, se houver possíveis otimizações, a orientação será fornecida por meio do Recomendador, um serviço do Google Cloud que gera insights gerados e recomendações para usar recursos no Google Cloud. Para o GKE, os recomendadores fornecem dois tipos de informações:
- Um insight explica que o GKE detectou que é possível otimizar o uso do cluster de alguma forma.
- Uma recomendação explica como otimizar o uso do cluster.
O GKE fornece essas informações no console do Google Cloud , e também é possível encontrá-las com a Google Cloud CLI e a API Recommender. O GKE fornece Recomendadores para tópicos como:
- Descontinuações: reduza a exposição a recursos ou APIs obsoletos do Kubernetes.
- Operações e conectividade: corrija problemas relacionados ao plano de controle, à conectividade do nó e à utilização do endereço IP.
- Otimização de custos: implemente configurações e práticas otimizadas para custos. Por exemplo, identifique clusters inativos do GKE, clusters do GKE com provisionamento excessivo e cargas de trabalho com provisionamento excessivo.
- Escalonabilidade: implemente práticas de melhoria de confiabilidade, como o escalonamento vertical de clusters do GKE subprovisionados e cargas de trabalho subprovisionadas.
- Solicitações e limites de recursos: Defina solicitações de recursos e limites para evitar o encerramento abrupto de pods sob pressão de recursos de nós e melhorar a precisão da alocação de custos.
- Agones: isole o controlador do Agones no cluster.
- Interrupções: garanta a continuidade e a recuperabilidade das cargas de trabalho durante a manutenção.
- Webhooks: garanta a estabilidade do plano de controle ao usar webhooks.
- Proteção de dados: garanta a proteção das cargas de trabalho contra eventos que causam interrupções.
- Credenciais do cluster: alterne as credenciais do cluster para evitar interrupções.
- Canais de lançamento: registre clusters em um canal de lançamento.
- Janelas de manutenção: escolha uma janela de tempo recorrente em que a manutenção do cluster do GKE ocorre.
- Versões compatíveis: verifique se os clusters executam uma versão compatível que também segue a política de desvio de versão do GKE. Para mais detalhes, consulte as seções Upgrades automáticos no fim do suporte e Política de desvio de versão do GKE na página referenciada.
- Permissões da conta de serviço do nó: verifique se as contas de serviço do nó têm as permissões críticas necessárias para as operações normais do GKE.
- CRDs: garanta operações de cluster estáveis corrigindo CRDs configurados incorretamente com um pacote de CA inválido.
- Uso do etcd: verifique se o banco de dados etcd tem armazenamento suficiente para evitar a instabilidade do cluster.
Antes de começar
Antes de começar, verifique se você realizou as tarefas a seguir:
- Ative a API Google Kubernetes Engine. Ativar a API Google Kubernetes Engine
- Para usar a Google Cloud CLI nesta tarefa,
instale e inicialize a
CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão mais recente executando o comando
gcloud components update. Talvez as versões anteriores da CLI gcloud não sejam compatíveis com a execução dos comandos neste documento.
Funções exigidas
Verifique se você tem as permissões necessárias para gerar insights e recomendações do Kubernetes, com os seguintes papéis básicos ou papéis predefinidos:
Veja insights e recomendações com uma das seguintes funções:
Ver e atualizar o estado dos insights e recomendações (por exemplo, dispensar uma recomendação):
Ver insights e recomendações
É possível visualizar insights e recomendações com a Google Cloud CLI, no console doGoogle Cloud ou com a API Recommender.
Console
Ao visualizar as recomendações no console, você tem duas opções. Use a visão geral de alto nível na parte de cima da visualização para conferir os resultados agregados das recomendações de integridade, upgrade e otimização de custos em todos os clusters do projeto.
Ou então, é possível ver uma lista de recomendações por cluster.
Para ver as recomendações usando o quadro de visão geral, siga estas etapas:
Acesse a página do Google Kubernetes Engine no console do Google Cloud :
Para ver o número de clusters afetados por recomendações individuais, clique em Ver recomendações na categoria que você quer visualizar: Integridade, Upgrade ou Custo. No painel da barra lateral revelado, uma lista de recomendações indica quantos clusters são afetados por cada recomendação.
Para ver mais informações, incluindo os nomes dos clusters afetados, clique no nome da recomendação.
Para ver mais detalhes de cada cluster afetado, clique na recomendação novamente.
Para ver as recomendações por cluster, siga estas etapas:
Acesse a página do Google Kubernetes Engine no console do Google Cloud :
Verifique a coluna Notificações para que clusters específicos encontrem insights e recomendações.
Para ver mais informações, clique no insight. No painel da barra lateral revelada, é possível ver detalhes sobre esse insight, incluindo qualquer recomendação associada.
gcloud
Um insight geralmente tem uma recomendação correspondente. Os insights são
buscados com gcloud recommender insights,
e as recomendações são coletadas com gcloud recommender recommendations.
Veja a lista de insights dos clusters de uma zona específica (para clusters zonais) ou uma região específica (para clusters regionais):
gcloud recommender insights list \ --insight-type=google.container.DiagnosisInsight \ --location=LOCATION \ --project=PROJECT_ID \ --format=FORMAT \ --filter="insightSubtype:SUBTYPE"Substitua:
PROJECT_ID: o ID do projeto do Google Cloud em que os clusters estão localizados.LOCATION: a região ou zona exata do cluster. Para clusters zonais, é preciso fornecer a zona exata (por exemplo,us-central1-c). Para clusters regionais, você precisa fornecer a região exata (por exemplo,us-central1).FORMAT: altere o formato de saída para YAML. Essa flag é opcional.SUBTYPE: um subtipo de insight, por exemplo,DEPRECATION_K8S_1_23_CERTIFICATE. Isso limita a saída a insights de um subtipo especificado. Essa flag é opcional.
Ou, se você já tiver um ID de insight, é possível ver detalhes sobre o insight executando o seguinte comando:
gcloud recommender insights describe INSIGHT \ --insight-type=google.container.DiagnosisInsight \ --location=LOCATION \ --project=PROJECT_ID \ --format=FORMATSubstitua
INSIGHTpelo valor do ID do insight, especificado no fim do URL do camponame.A saída inclui outros detalhes sobre o comportamento detectado pelo GKE no cluster.
Confira a lista de recomendações para o cluster de uma zona específica (para clusters zonais) ou uma região específica (para clusters regionais):
gcloud recommender recommendations list \ --recommender=google.container.DiagnosisRecommender \ --location=LOCATION \ --project=PROJECT_ID \ --format=FORMAT \ --filter="recommenderSubtype:SUBTYPE"Substitua
SUBTYPEpor um subtipo de recomendador, por exemplo,DEPRECATION_K8S_1_23_CERTIFICATE. Isso limita a saída a recomendações de um subtipo especificado. Essa flag é opcional.Ou, se você já tiver um ID de recomendação, visualize a recomendação executando o seguinte comando:
gcloud recommender recommendations describe RECOMMENDATION_ID \ --recommender=google.container.DiagnosisRecommender \ --location=LOCATION \ --project=PROJECT_ID \ --format=FORMATSubstitua
RECOMMENDATION_IDpelo valor salvo deassociatedRecommendations.recommendationda resposta ao comando na Etapa 1.A saída fornece orientações sobre qual ação pode ser necessária para otimizar o uso do GKE do cluster.
API
Cada insight tem uma recomendação correspondente. Os insights são buscados com o recurso REST: projects.locations.insightTypes.insights, e as recomendações são buscadas com o recurso REST: projects.locations.recommenders.recommendations.
Veja a lista de insights dos clusters de uma zona específica (para clusters zonais) ou uma região específica (para clusters regionais):
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.container.DiagnosisInsight/insights?filter=insightSubtype%20%3D%20SUBTYPESubstitua:
PROJECT_ID: o ID do projeto do Google Cloud em que os clusters estão localizados.LOCATION: a região ou zona exata do cluster. Para clusters zonais, é preciso fornecer a zona exata (por exemplo,us-central1-c). Para clusters regionais, você precisa fornecer a região exata (por exemplo,us-central1).SUBTYPE: um subtipo de insight, por exemplo,DEPRECATION_K8S_1_23_CERTIFICATE. Isso limita a saída a insights de um subtipo especificado. Essa flag é opcional.
Ou, se você já tiver um ID de insight, é possível consultar detalhes sobre o insight realizando a seguinte solicitação:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.container.DiagnosisInsight/insights/INSIGHTSubstitua
INSIGHTpelo valor do ID do insight, especificado no fim do URL do camponame.O corpo da resposta inclui detalhes sobre o comportamento que o GKE detectou com o cluster.
Confira a lista de recomendações para o cluster de uma zona específica (para clusters zonais) ou uma região específica (para clusters regionais):
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.container.DiagnosisRecommender/recommendations?filter=recommenderSubtype%20%3D%20SUBTYPESubstitua
SUBTYPEpor um subtipo de recomendador, por exemplo,DEPRECATION_K8S_1_23_CERTIFICATE. Isso limita a saída a recomendações de um subtipo especificado. Essa flag é opcional.Ou então, se você já tiver um ID de recomendação, é possível visualizar a recomendação fazendo a seguinte solicitação:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.container.DiagnosisRecommender/recommendations/RECOMMENDATION_IDSubstitua
RECOMMENDATION_IDpelo valor salvo deassociatedRecommendations.recommendationdo corpo da resposta na Etapa 1.O corpo da resposta fornece orientações sobre qual ação pode ser necessária para otimizar o uso do GKE do cluster.
Exportar insights e recomendações para o BigQuery
É possível usar o BigQuery para exportar e analisar insights de descontinuação e recomendações para toda a organização. Para saber mais, consulte Exportar recomendações para o BigQuery.
Dispensar ou restaurar recomendações
Se você não quiser mais ver uma recomendação de um cluster no console doGoogle Cloud , dispense-a. Você pode fazer isso, por exemplo, se avaliou a recomendação e decidiu não implementá-la.
Se você dispensar a recomendação, ela não aparecerá para nenhum usuário que estiver visualizando o cluster no console. Depois de dispensar a recomendação, ela não aparecerá novamente, mesmo que o GKE detecte o mesmo comportamento.
Ao dispensar uma recomendação, ela só será ocultada para todos os usuários no console. No entanto, a recomendação permanece detectável com a Google Cloud CLI e a API Recommender.
Dispensar uma recomendação
Para dispensar a recomendação, siga as instruções em Como visualizar insights e recomendações no console doGoogle Cloud para abrir o painel da barra lateral, que tem mais detalhes. Nesse painel, clique no botão Dispensar.
Dispensar recomendações usando a Google Cloud CLI
Para dispensar uma recomendação usando a CLI gcloud, localize o "valor etag" da recomendação ativa e marque-a como dispensada.
Listar recomendações ativas: para encontrar a recomendação que você quer dispensar, liste as recomendações ativas do cluster. Para excluir recomendações que já foram dispensadas, bem-sucedidas ou que falharam, use a flag
--filter:gcloud recommender recommendations list \ --recommender=RECOMMENDER_ID \ --project=PROJECT_ID \ --location=LOCATION \ --filter="stateInfo.state=ACTIVE"Substitua:
RECOMMENDER_ID: o ID do recomendador.PROJECT_ID: o ID do projeto do Google Cloud em que os clusters estão localizados.LOCATION: a região ou zona exata do cluster. Para clusters zonais, é preciso fornecer a zona exata (comous-central1-c). Para clusters regionais, é preciso fornecer a região exata (comous-central1).
Busque a etag: encontre o
RECOMMENDATION_IDna saída anterior e descreva-o para recuperar o estado atual eetag:gcloud recommender recommendations describe RECOMMENDATION_ID \ --recommender=RECOMMENDER_ID \ --project=PROJECT_ID \ --location=LOCATIONSubstitua:
RECOMMENDATION_ID: o ID da recomendação que você quer dispensar.
Anote o valor de
etagna saída (por exemplo,"a770e444b0088a35").Marcar como dispensado: execute o comando
mark-dismissed. A API Recommender exige oetagexato para evitar disputas.gcloud recommender recommendations mark-dismissed RECOMMENDATION_ID \ --recommender=RECOMMENDER_ID \ --project=PROJECT_ID \ --location=LOCATION \ --etag='"ETAG_VALUE"'Substitua:
ETAG_VALUE: o valoretagretornado do comando describe.
Restaurar uma recomendação dispensada
É possível restaurar uma recomendação dispensada seguindo as instruções em Como restaurar uma recomendação.
A seguir
- Saiba mais sobre recomendadores