Este documento descreve como instalar o operador Cluster Services for OpenShift Telemetry e configurá-lo para se conectar a um cluster do OpenShift em execução em uma instância do Compute Engine.
Depois de instalado e configurado, esse operador de telemetria implanta um daemon de telemetria de rede de host que monitora continuamente a integridade e a configuração do cluster. O operador envia as métricas coletadas para o Gerenciador de cargas de trabalho. Em seguida, é possível usar a avaliação do Gerenciador de cargas de trabalho para verificar se as cargas de trabalho em execução no cluster apresentam desvios das práticas recomendadas para clusters do OpenShift.
Antes de começar
Antes de instalar e configurar o operador de telemetria, verifique se os seguintes pré-requisitos foram atendidos:
- Você está usando a versão 4.18 ou mais recente do Red Hat OpenShift Container Platform.
- Você implantou um cluster do OpenShift em uma ou mais instâncias de computação.
- O administrador concedeu a você o papel ClusterAdmin para o cluster no Red Hat OpenShift Container Platform.
- Você fez o download e instalou a Google Cloud CLI no terminal. Se você estiver usando o Cloud Shell, poderá ignorar esse pré-requisito.
- Você instalou a CLI do OpenShift (
oc) no cluster. Para mais informações sobre como instalar essa CLI, consulte o documento da Red Hat Como instalar a CLI do OpenShift. - Você instalou o utilitário do operador de credenciais do Cloud (
ccoctl). Para mais informações sobre como instalar esse utilitário, consulte o documento da Red Hat Como conseguir a ferramentaccoctlpara o OpenShift 4 (em inglês). - Você analisou as regiões com suporte em que é possível criar avaliações do Gerenciador de cargas de trabalho.
- O administrador concedeu a você os papéis do IAM necessários para criar e executar avaliações do Gerenciador de cargas de trabalho.
- Você ativou o acesso às APIs do Cloud.
Ativar o acesso às APIs do Cloud
O Compute Engine recomenda configurar as instâncias para permitir todos os escopos de acesso a todas as APIs do Cloud e usar apenas as permissões do IAM da conta de serviço da instância para controlar o acesso aos recursos.Google Cloud Para mais informações, consulte Criar uma VM que usa uma conta serviço gerenciado pelo usuário.
Se você limitar o acesso às APIs do Cloud, o operador Cluster Services for OpenShift Telemetry exigirá, no mínimo, os seguintes escopos de acesso às APIs do Cloud na instância de computação do host:
https://www.googleapis.com/auth/cloud-platform
Para mais informações, consulte Práticas recomendadas de escopos.
Se você estiver executando um cluster do OpenShift em uma instância de computação que não tenha um endereço IP externo, ative o Acesso privado do Google na sub-rede da instância para que o operador Cluster Services for OpenShift Telemetry possa acessar as APIs e os serviços do Google. Para mais informações sobre como ativar o Acesso privado do Google, consulte Configurar o Acesso privado do Google.
Autenticar usuários no cluster do OpenShift
Para realizar ações administrativas, você ou seus usuários precisam ser autenticados no cluster do OpenShift usando a CLI do OpenShift. Para autenticar usuários no cluster do OpenShift, escolha uma das seguintes opções:
Execute o comando a seguir e siga as instruções:
oc login "https://api.CLUSTER_DOMAIN:6443" -u kubeadminComo alternativa, receba um token de autenticação de sessão para uso com o binário
oc. Para receber esse token, abra o URL a seguir em um navegador da Web:https://oauth-openshift.apps.CLUSTER_DOMAIN/oauth/token/request
Substitua CLUSTER_DOMAIN pelo domínio do cluster do OpenShift. Por exemplo, mycluster.google.com.
Autenticar o operador no Google Cloud
Para permitir que o operador de telemetria se autentique e acesse Google Cloud recursos, crie uma conta de serviço para ele em seu Google Cloud projeto.
É possível autenticar o operador de telemetria como a conta de serviço usando as seguintes opções:
- (Recomendado) Autenticar usando a federação de identidade da carga de trabalho
- Autenticar usando uma chave de conta de serviço
Autenticar o operador usando a federação de identidade da carga de trabalho
Para autenticar o operador de telemetria como a conta de serviço usando a federação de identidade da carga de trabalho, siga estas etapas:
No terminal, extraia o manifesto
CredentialsRequestdo pacote do operador de telemetria para um diretório local:mkdir -p credrequests oc image extract us-docker.pkg.dev/workload-agent-products/cluster-services-for-openshift-telemetry/bundle:VERSION --path /manifests/:./credrequests --confirmSubstitua
VERSIONpelo número da versão que você assinou para o operador de telemetria no OperatorHub. É possível conferir a lista de números de versão certificados para o operador de telemetria no Red Hat Ecosystem Catalog (em inglês).Usando o utilitário
ccoctl, processe o manifestoCredentialsRequestextraído e provisione as vinculações Google Cloud do Identity and Access Management (IAM) e credenciais:ccoctl gcp create-all \ --name=cso-telemetry \ --region=REGION \ --project=PROJECT_ID \ --credentials-requests-dir=./credrequests \ --output-dir=./ccoctl-outSubstitua:
REGION: a região do Compute Engine em que o cluster do OpenShift é executadoPROJECT_ID: o ID do projeto em que o cluster do OpenShift é executado Google Cloud
Aplique o provedor OpenID Connect (OIDC) gerado, os papéis do IAM e os manifestos secretos ao cluster:
oc apply -f ./ccoctl-out/manifests/
As etapas anteriores criam uma conta de serviço em seu Google Cloud projeto e atribuem a ela os seguintes papéis do IAM:
- Para coletar métricas da instância de computação:
Leitor do Compute (
roles/compute.viewer) - Para gravar dados no data warehouse do Gerenciador de cargas de trabalho:
Gravador de insights do gerenciador de cargas de trabalho (
roles/workloadmanager.insightWriter) - Para enviar registros do operador ao Cloud Logging:
Gravador de registros (
roles/logging.logWriter)
Autenticar o operador usando uma chave de conta de serviço
Se a organização não oferecer suporte ao uso da federação de identidade da carga de trabalho para fins de autenticação, será possível autenticar o operador de telemetria usando uma chave de conta de serviço.
Para autenticar o operador de telemetria como a conta de serviço usando uma chave de conta de serviço, siga estas etapas:
No terminal, extraia o manifesto
CredentialsRequestdo pacote do operador de telemetria para um diretório local:mkdir -p credrequests oc image extract us-docker.pkg.dev/workload-agent-products/cluster-services-for-openshift-telemetry/bundle:VERSION --path /manifests/:./credrequests --confirmEm seu Google Cloud projeto, crie uma conta de serviço para o operador de telemetria:
gcloud iam service-accounts create cso-telemetry-agent \ --description="Service account for OpenShift Telemetry Operator" \ --display-name="CSO Telemetry Agent" \ --project=PROJECT_IDSubstitua
PROJECT_IDpelo ID do Google Cloud projeto em que o cluster do OpenShift é executado.Para permitir que a conta de serviço acesse Google Cloud recursos, conceda a conta de serviço os papéis do IAM definidos no
CredentialsRequestmanifesto. Esse manifesto inclui o seguinte conjunto mínimo de papéis do IAM necessários para o operador:- Para coletar métricas da instância de computação:
Leitor do Compute (
roles/compute.viewer) - Para gravar dados no data warehouse do Gerenciador de cargas de trabalho:
Gravador de insights do gerenciador de cargas de trabalho (
roles/workloadmanager.insightWriter) - Para enviar registros do operador ao Cloud Logging:
Gravador de registros (
roles/logging.logWriter)
Para cada papel do IAM definido nesse manifesto, execute o comando a seguir:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:cso-telemetry-agent@PROJECT_ID.iam.gserviceaccount.com" \ --role="IAM_ROLE"Substitua
IAM_ROLEpelo papel do IAM que você quer conceder à conta de serviço.- Para coletar métricas da instância de computação:
Leitor do Compute (
Crie e faça o download de uma chave privada para a conta de serviço:
gcloud iam service-accounts keys create ./sa_key.json \ --iam-account=cso-telemetry-agent@PROJECT_ID.iam.gserviceaccount.com \ --project=PROJECT_IDNo namespace
openshift-operators, crie um secret chamadotelemetry-agent-sapara a chave da conta de serviço que você criou:oc create secret generic telemetry-agent-sa \ --from-file=workload_agent_sa_key.json=./sa_key.json \ -n openshift-operators
Instalar o operador Cluster Services for OpenShift Telemetry
É possível instalar o operador Cluster Services for OpenShift Telemetry usando o console da Web do Red Hat OpenShift Container Platform ou os manifestos YAML de assinatura declarativa. Para mais informações sobre essas opções, consulte o documento da Red Hat Como adicionar operadores a um cluster (em inglês).
Console da Web do OpenShift
Para instalar o operador de telemetria no cluster do OpenShift usando o console da Web do OpenShift Container Platform, siga estas etapas:
- Faça login no console da Web do Red Hat OpenShift.
- Verifique se você está na perspectiva Administrador.
- Na navegação à esquerda, expanda a seção Operadores e clique em OperatorHub.
Na barra de pesquisa em Todos os itens, digite Cluster Services for OpenShift Telemetry.
Como alternativa, é possível pesquisar digitando Google. Isso filtra os operadores fornecidos pelo Google, incluindo o operador Cluster Services for OpenShift Telemetry.
Clique no card chamado Cluster Services for OpenShift Telemetry.
No painel Cluster Services for OpenShift Telemetry, clique em Instalar.
Na página Instalar operador, siga estas etapas:
- No campo Canal de atualização, selecione estável.
- No campo Modo de instalação, selecione Um namespace específico no cluster.
- No campo Namespace instalado, selecione o projeto openshift-operators ou crie um namespace de monitoramento personalizado.
- No campo Estratégia de aprovação, selecione Automático ou Manual.
- Clique em Instalar.
Para verificar se o operador foi instalado corretamente, siga estas etapas:
- Acesse Operadores > Operadores instalados.
- Na lista de operadores, pesquise e verifique se o operador Cluster Services for OpenShift Telemetry está presente.
- Verifique se a coluna Status mostra o valor Concluído ou Atualizado.
- Opcional: clique no operador para conferir os detalhes dele.
CLI do OpenShift
Para instalar o operador de telemetria no cluster do OpenShift usando a CLI do OpenShift e um manifesto YAML Subscription declarativo, siga estas etapas:
Crie um manifesto de recurso personalizado
Subscriptionchamadosubscription.yamlcom a seguinte configuração:apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: google-cloud-cluster-services-for-openshift-telemetry namespace: openshift-operators spec: channel: stable installPlanApproval: Automatic name: google-cloud-cluster-services-for-openshift-telemetry source: certified-operators sourceNamespace: openshift-marketplaceAplique a assinatura ao cluster:
oc apply -f subscription.yamlVerifique se o operador de telemetria foi instalado corretamente conferindo o status de
ClusterServiceVersion:oc get csv -n openshift-operatorsNa saída, verifique se o valor na coluna
PHASEparacluster-services-for-openshift-telemetryéSucceeded.
Ativar coleta de métricas
Para permitir que o operador colete métricas do cluster do OpenShift, aplique um recurso personalizado TelemetryConfig. Esse recurso implanta pods de daemon nos nós do cluster para o agente de cargas de trabalho do Compute.
Para permitir que o operador colete métricas do cluster do OpenShift, siga estas etapas:
Crie um manifesto de recurso personalizado
TelemetryConfigchamadotelemetryconfig.yaml:Se você configurou a autenticação para o operador de telemetria usando a federação de identidade da carga de trabalho, use o seguinte recurso personalizado mínimo. Esse recurso personalizado busca automaticamente as credenciais armazenadas no secret
google-cloud-cluster-services-telemetry-agent-wif-secret.apiVersion: cluster-services-openshift.cloud.google.com/v1alpha1 kind: TelemetryConfig metadata: name: telemetryconfig namespace: openshift-operators spec: enabled: trueSe você configurou a autenticação para o operador de telemetria usando uma chave de conta de serviço, use o seguinte recurso personalizado:
apiVersion: cluster-services-openshift.cloud.google.com/v1alpha1 kind: TelemetryConfig metadata: name: telemetryconfig namespace: openshift-operators spec: enabled: true serviceAccountCredentialsSecretName: telemetry-agent-sa serviceAccountCredentialsPath: SERVICE_ACCOUNT_KEY_PATHSubstitua
SERVICE_ACCOUNT_KEY_PATHpelo caminho em que você montou a chave da conta de serviço. O nome da montagem precisa corresponder ao arquivo JSON da chave da conta de serviço. Por exemplo:/var/run/secrets/google/workload_agent_sa_key.json.
Aplique o recurso personalizado ao cluster:
oc apply -f telemetryconfig.yamlVerifique se o estado do pod do agente de telemetria é Em execução:
oc get pods -n openshift-operators -l app.kubernetes.io/name=workloadagent-operatorTambém é possível verificar a coleta de métricas inspecionando os registros do pod:
"openshiftmetrics/openshiftmetrics.go:126","msg":"Metric payload after collection","pid":5,"context":"OpenShiftMetricCollection","payload":"version:\"v0.1.0-pre\" agent_version:\"1.3\"
Conferir registros do operador no Cloud Logging
Por padrão, os registros do operador Cluster Services for OpenShift Telemetry são enviados para o Cloud Logging. É possível conferir esses registros no Logging. Para conferir os registros do operador no Logging, siga estas etapas:
No Google Cloud console do, acesse a página Análise de registros.
No painel de consulta, digite uma consulta:
Para filtrar os registros do seu Google Cloud projeto, use a seguinte consulta:
logName="projects/PROJECT_ID/logs/google-cloud-workload-agent"
Substitua
PROJECT_IDpelo ID do projeto em que o cluster do OpenShift é executado.Google CloudSe você estiver executando vários clusters em seu Google Cloud projeto e quiser filtrar registros de um cluster específico, use a seguinte consulta:
resource.labels.instance_id=("COMPUTE_INSTANCE_ID_1" OR "COMPUTE_INSTANCE_ID_2" OR "COMPUTE_INSTANCE_ID_3")Substitua
COMPUTE_INSTANCE_IDpelo ID da instância das instâncias do Compute Engine que executam o cluster do OpenShift. Para mais informações sobre como encontrar o ID da instância de computação, consulte Conferir os detalhes de uma VM.
Clique em Executar consulta.
Configurar políticas de alertas com base em registros
Por padrão, os registros do operador de telemetria são enviados para o Cloud Logging. Recomendamos que você configure políticas de alertas com base nos registros do operador de telemetria, que notificam quando mensagens específicas aparecem nos registros. Esses alertas ajudam a monitorar o funcionamento do operador e a resolver problemas.
Para configurar uma política de alertas com base nos registros gerados pelo operador de telemetria, siga estas etapas:
Verifique se você atende aos pré-requisitos descritos na seção "Antes de começar" de Configurar políticas de alertas com base em registros.
No Google Cloud console do, acesse a página Análise de registros.
No painel de consulta, digite a consulta necessária:
logName="projects/PROJECT_ID/logs/google-cloud-workload-agent" severity=SEVERITY_LEVEL
Substitua
SEVERITY_LEVELpor um valor de nível de gravidade com suporte, que inclui:DEBUG,INFO,WARNINGeERROR. Recomendamos que você useERRORou um valor de nível de registro mais alto.Clique em Executar consulta para validar a consulta.
Crie um alerta de registro.
Para saber como criar esse alerta, consulte a terceira etapa do procedimento que está descrito em Criar uma política de alertas com base em registros usando a Análise de registros.
Opcional: ativar avaliações específicas de produção
Das práticas recomendadas que o Gerenciador de cargas de trabalho oferece suporte para clusters do OpenShift, algumas são aplicadas apenas a ambientes de produção.
O Gerenciador de cargas de trabalho faz essa distinção verificando o cluster, a implantação ou o pod para o rótulo environment. Se o valor associado a esse rótulo for production, o Gerenciador de cargas de trabalho considerará esse recurso como um recurso de produção.
Para informar ao Gerenciador de cargas de trabalho que um cluster pertence a um ambiente de produção, siga estas etapas:
Crie um namespace
workloadmanager:oc create namespace workloadmanagerCrie um
ConfigMapno namespaceworkloadmanagerusando a seguinte configuração:apiVersion: v1 kind: ConfigMap metadata: name: wlm-cluster-environment namespace: workloadmanager data: # Options: "production" or "non-production" environment: "production"
Para informar ao Gerenciador de cargas de trabalho que uma implantação ou um pod pertence a um ambiente de produção, adicione um rótulo chamado environment à definição de recurso usando uma das seguintes opções:
Aplique manualmente a seguinte configuração:
apiVersion: apps/v1 kind: Deployment metadata: name: my-app labels: # Options: "production" or "non-production" environment: "production" spec: ...Execute este comando:
oc label --overwrite deployments DEPLOYMENT_NAME environment=productionSubstitua
DEPLOYMENT_NAMEpelo nome da implantação.
Se você aplicar o rótulo environment no cluster do OpenShift e em uma implantação ou pod em execução no cluster, o Gerenciador de cargas de trabalho dará precedência ao valor do rótulo definido para a implantação ou o pod em relação ao valor do rótulo definido para o cluster.
Opcional: acionar a coleta de métricas
Depois de configurar o operador Cluster Services for OpenShift Telemetry no cluster do OpenShift, o operador coleta métricas do cluster e as envia para o Gerenciador de cargas de trabalho a cada 30 minutos.
Opcionalmente, em vez de esperar 30 minutos para a coleta programada de métricas, é possível acionar manualmente o operador para coletar métricas e enviá-las ao Gerenciador de cargas de trabalho.
Para acionar manualmente o operador para coleta de métricas, siga estas etapas:
Abra o terminal.
Encontre o nome do pod em execução:
POD_NAME=$(oc get pods -l app.kubernetes.io/name=workloadagent-operator --field-selector=status.phase=Running -o=name)Acione o operador para coletar e enviar métricas:
oc debug -t $POD_NAME -- /openshift-docker-entrypoint.sh
A seguir
- Criar e executar uma avaliação
- Saiba mais sobre as práticas recomendadas do Gerenciador de cargas de trabalho para o OpenShift