En este documento, se describe cómo instalar el operador de Cluster Services for OpenShift Telemetry y configurarlo para que se conecte con un clúster de OpenShift que se ejecuta en una instancia de Compute Engine.
Después de instalarlo y configurarlo, este operador de telemetría implementa un daemon de telemetría de red de host que supervisa continuamente el estado y la configuración del clúster. El operador envía las métricas recopiladas a Workload Manager. Luego, puedes usar la evaluación de Workload Manager para analizar las cargas de trabajo que se ejecutan en tu clúster en busca de desviaciones de las prácticas recomendadas para los clústeres de OpenShift.
Antes de comenzar
Antes de instalar y configurar el operador de telemetría, debes asegurarte de que se cumplan los siguientes requisitos previos:
- Usas la versión 4.18 o posterior de Red Hat OpenShift Container Platform.
- Implementaste un clúster de OpenShift en una o más instancias de procesamiento.
- Tu administrador te otorgó el rol ClusterAdmin para tu clúster en Red Hat OpenShift Container Platform.
- Descargaste e instalaste Google Cloud CLI en tu terminal. Si usas Cloud Shell, puedes omitir este requisito previo.
- Instalaste la CLI de OpenShift (
oc) en tu clúster. Para obtener información sobre cómo instalar esta CLI, consulta el documento de Red Hat Instala la CLI de OpenShift. - Instalaste la utilidad del operador de credenciales de Cloud (
ccoctl). Para obtener información sobre cómo instalar esta utilidad, consulta el documento de Red Hat Cómo obtener la herramientaccoctlpara OpenShift 4. - Revisaste las regiones admitidas en las que puedes crear evaluaciones de Workload Manager.
- Tu administrador te otorgó los roles de IAM necesarios para crear y ejecutar evaluaciones de Workload Manager.
- Habilitaste el acceso a las APIs de Cloud.
Habilita el acceso a las API de Cloud
Compute Engine recomienda configurar tus instancias para permitir todos los permisos de acceso a todas las API de Cloud y usar solo los permisos de IAM de la cuenta de servicio de la instancia para controlar el acceso a los recursos.Google Cloud Para obtener más información, consulta Crea una VM que use una cuenta de servicio administrada por el usuario.
Si limitas el acceso a las API de Cloud, el operador de Cluster Services for OpenShift Telemetry requiere, como mínimo, los siguientes permisos de acceso a las API de Cloud en la instancia de procesamiento del host:
https://www.googleapis.com/auth/cloud-platform
Para obtener más información, consulta Prácticas recomendadas para los permisos.
Si ejecutas un clúster de OpenShift en una instancia de procesamiento que no tiene una dirección IP externa, debes habilitar el Acceso privado a Google en la subred de la instancia para que el operador de Cluster Services for OpenShift Telemetry pueda acceder a los servicios y las APIs de Google. Para obtener información sobre cómo habilitar el Acceso privado a Google, consulta Configura el Acceso privado a Google.
Autentica a los usuarios en el clúster de OpenShift
Para realizar acciones administrativas, tú o tus usuarios deben autenticarse en tu clúster de OpenShift con la CLI de OpenShift. Para autenticar a los usuarios en tu clúster de OpenShift, puedes elegir entre las siguientes opciones:
Ejecuta el siguiente comando y sigue las indicaciones:
oc login "https://api.CLUSTER_DOMAIN:6443" -u kubeadminComo alternativa, obtén un token de autenticación de sesión para usarlo con el objeto binario
oc. Para obtener este token, abre la siguiente URL en un navegador web:https://oauth-openshift.apps.CLUSTER_DOMAIN/oauth/token/request
Reemplaza CLUSTER_DOMAIN por el dominio de tu clúster de OpenShift. Por ejemplo: mycluster.google.com.
Autentica el operador en Google Cloud
Para permitir que el operador de telemetría se autentique y acceda a los Google Cloud recursos, debes crear una cuenta de servicio para él en tu Google Cloud proyecto.
Puedes autenticar el operador de telemetría como la cuenta de servicio con las siguientes opciones:
- (Recomendado) Autentica con la federación de Workload Identity
- Autentica con una clave de cuenta de servicio
Autentica el operador con la federación de Workload Identity
Para autenticar el operador de telemetría como la cuenta de servicio con la federación de Workload Identity, completa los siguientes pasos:
En tu terminal, extrae el manifiesto
CredentialsRequestdel paquete del operador de telemetría en un directorio local:mkdir -p credrequests oc image extract us-docker.pkg.dev/workload-agent-products/cluster-services-for-openshift-telemetry/bundle:VERSION --path /manifests/:./credrequests --confirmReemplaza
VERSIONpor el número de versión al que te suscribiste para el operador de telemetría en OperatorHub. Puedes ver la lista de números de versión certificados para el operador de telemetría en el Catálogo del ecosistema de Red Hat.Con la utilidad
ccoctl, procesa el manifiestoCredentialsRequestextraído y aprovisiona las vinculaciones Google Cloud de Identity and Access Management (IAM) y credenciales:ccoctl gcp create-all \ --name=cso-telemetry \ --region=REGION \ --project=PROJECT_ID \ --credentials-requests-dir=./credrequests \ --output-dir=./ccoctl-outReemplaza lo siguiente:
REGION: La región de Compute Engine en la que se ejecuta tu clúster de OpenShiftPROJECT_ID: El ID del proyecto del Google Cloud proyecto en el que se ejecuta tu clúster de OpenShift
Aplica al clúster el proveedor de OpenID Connect (OIDC) generado, los roles de IAM y los manifiestos secretos:
oc apply -f ./ccoctl-out/manifests/
En los pasos anteriores, se crea una cuenta de servicio en tu Google Cloud proyecto y se le asignan los siguientes roles de IAM:
- Para recopilar métricas de la instancia de procesamiento:
Visualizador de Compute (
roles/compute.viewer) - Para escribir datos en el almacén de datos de Workload Manager:
Escritor de estadísticas de Workload Manager (
roles/workloadmanager.insightWriter) - Para enviar registros del operador a Cloud Logging:
Escritor de registros (
roles/logging.logWriter)
Autentica el operador con una clave de cuenta de servicio
Si tu organización no admite el uso de la federación de Workload Identity para fines de autenticación, puedes autenticar el operador de telemetría con una clave de cuenta de servicio.
Para autenticar el operador de telemetría como la cuenta de servicio con una clave de cuenta de servicio, completa los siguientes pasos:
En tu terminal, extrae el manifiesto
CredentialsRequestdel paquete del operador de telemetría en un directorio local:mkdir -p credrequests oc image extract us-docker.pkg.dev/workload-agent-products/cluster-services-for-openshift-telemetry/bundle:VERSION --path /manifests/:./credrequests --confirmEn tu Google Cloud proyecto, crea una cuenta de servicio para el operador de telemetría:
gcloud iam service-accounts create cso-telemetry-agent \ --description="Service account for OpenShift Telemetry Operator" \ --display-name="CSO Telemetry Agent" \ --project=PROJECT_IDReemplaza
PROJECT_IDpor el ID del Google Cloud proyecto en el que se ejecuta tu clúster de OpenShift.Para permitir que la cuenta de servicio acceda a los Google Cloud recursos, otórgale a la cuenta de servicio los roles de IAM definidos en el
CredentialsRequestmanifiesto. Este manifiesto incluye el siguiente conjunto mínimo de roles de IAM que necesita el operador:- Para recopilar métricas de la instancia de procesamiento:
Visualizador de Compute (
roles/compute.viewer) - Para escribir datos en el almacén de datos de Workload Manager:
Escritor de estadísticas de Workload Manager (
roles/workloadmanager.insightWriter) - Para enviar registros del operador a Cloud Logging:
Escritor de registros (
roles/logging.logWriter)
Para cada rol de IAM definido en este manifiesto, ejecuta el siguiente comando:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:cso-telemetry-agent@PROJECT_ID.iam.gserviceaccount.com" \ --role="IAM_ROLE"Reemplaza
IAM_ROLEpor el rol de IAM que deseas otorgar a la cuenta de servicio.- Para recopilar métricas de la instancia de procesamiento:
Visualizador de Compute (
Crea y descarga una clave privada para la cuenta de servicio:
gcloud iam service-accounts keys create ./sa_key.json \ --iam-account=cso-telemetry-agent@PROJECT_ID.iam.gserviceaccount.com \ --project=PROJECT_IDEn el espacio de nombres
openshift-operators, crea un secreto llamadotelemetry-agent-sapara la clave de cuenta de servicio que creaste:oc create secret generic telemetry-agent-sa \ --from-file=workload_agent_sa_key.json=./sa_key.json \ -n openshift-operators
Instala el operador de Cluster Services for OpenShift Telemetry
Puedes instalar el operador de Cluster Services for OpenShift Telemetry con la consola web de Red Hat OpenShift Container Platform o los manifiestos YAML de suscripción declarativa. Para obtener información sobre estas opciones, consulta el documento de Red Hat Agrega operadores a un clúster.
Consola web de OpenShift
Para instalar el operador de telemetría en tu clúster de OpenShift con la consola web de OpenShift Container Platform, completa los siguientes pasos:
- Accede a la consola web de Red Hat OpenShift.
- Verifica que estés en la perspectiva Administrador.
- En la navegación de la izquierda, expande la sección Operadores y haz clic en OperatorHub.
En la barra de búsqueda en Todos los elementos, ingresa Cluster Services for OpenShift Telemetry.
Como alternativa, puedes buscar ingresando Google. Esto filtra los operadores proporcionados por Google, que incluye el operador de Cluster Services for OpenShift Telemetry.
Haz clic en la tarjeta llamada Cluster Services for OpenShift Telemetry.
En el panel Cluster Services for OpenShift Telemetry, haz clic en Instalar.
En la página Instalar operador, completa los siguientes pasos:
- En el campo Canal de actualización, selecciona estable.
- En el campo Modo de instalación, selecciona Un espacio de nombres específico en el clúster.
- En el campo Espacio de nombres instalado, selecciona el proyecto openshift-operators o crea un espacio de nombres de supervisión personalizado.
- En el campo Estrategia de aprobación, selecciona Automático o Manual.
- Haz clic en Instalar.
Para verificar que el operador se instaló correctamente, completa los siguientes pasos:
- Ve a Operadores > Operadores instalados.
- En la lista de operadores, busca y verifica que esté presente el operador Cluster Services for OpenShift Telemetry.
- Verifica que la columna Estado muestre el valor Correcto o Actualizado.
- De manera opcional, haz clic en el operador para ver sus detalles.
CLI de OpenShift
Para instalar el operador de telemetría en tu clúster de OpenShift con la CLI de OpenShift y un manifiesto YAML Subscription declarativo, completa los siguientes pasos:
Crea un manifiesto de recurso personalizado
Subscriptionllamadosubscription.yamlcon la siguiente configuración: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-marketplaceAplica la suscripción a tu clúster:
oc apply -f subscription.yamlVerifica que el operador de telemetría se haya instalado correctamente. Para ello, verifica el estado de
ClusterServiceVersion:oc get csv -n openshift-operatorsEn el resultado, verifica que el valor de la columna
PHASEparacluster-services-for-openshift-telemetryseaSucceeded.
Habilitar la recopilación de métricas
Para permitir que el operador recopile métricas de tu clúster de OpenShift, debes aplicar un recurso personalizado TelemetryConfig. Este recurso implementa pods de daemon en los nodos de tu clúster para el Agente de Compute Workloads.
Para permitir que el operador recopile métricas de tu clúster de OpenShift, completa los siguientes pasos:
Crea un manifiesto de recurso personalizado
TelemetryConfigllamadotelemetryconfig.yaml:Si configuraste la autenticación para el operador de telemetría con la federación de Workload Identity, usa el siguiente recurso personalizado mínimo. Este recurso personalizado recupera automáticamente las credenciales almacenadas en el secreto
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: trueSi configuraste la autenticación para el operador de telemetría con una clave de cuenta de servicio, usa el siguiente 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_PATHReemplaza
SERVICE_ACCOUNT_KEY_PATHpor la ruta de acceso en la que activaste la clave de cuenta de servicio. El nombre del punto de activación debe coincidir con el archivo JSON de claves de cuenta de servicio. Por ejemplo:/var/run/secrets/google/workload_agent_sa_key.json.
Aplica el recurso personalizado a tu clúster:
oc apply -f telemetryconfig.yamlVerifica que el estado del pod del agente de telemetría sea En ejecución:
oc get pods -n openshift-operators -l app.kubernetes.io/name=workloadagent-operatorTambién puedes verificar la recopilación de métricas si inspeccionas los registros del pod:
"openshiftmetrics/openshiftmetrics.go:126","msg":"Metric payload after collection","pid":5,"context":"OpenShiftMetricCollection","payload":"version:\"v0.1.0-pre\" agent_version:\"1.3\"
Visualiza los registros del operador en Cloud Logging
De forma predeterminada, los registros del operador de Cluster Services for OpenShift Telemetry se envían a Cloud Logging. Puedes ver estos registros en Logging. Para ver los registros del operador en Logging, completa los siguientes pasos:
En la Google Cloud consola de, accede a la página Explorador de registros.
En el panel de consultas, ingresa una consulta:
Para filtrar los registros de tu Google Cloud proyecto, usa la siguiente consulta:
logName="projects/PROJECT_ID/logs/google-cloud-workload-agent"
Reemplaza
PROJECT_IDpor el ID del proyecto en el Google Cloud que se ejecuta tu clúster de OpenShift.Si ejecutas varios clústeres en tu Google Cloud proyecto y deseas filtrar los registros de un clúster específico, usa la siguiente consulta:
resource.labels.instance_id=("COMPUTE_INSTANCE_ID_1" OR "COMPUTE_INSTANCE_ID_2" OR "COMPUTE_INSTANCE_ID_3")Reemplaza
COMPUTE_INSTANCE_IDpor el ID de instancia de las instancias de Compute Engine que ejecutan tu clúster de OpenShift. Para obtener información sobre cómo encontrar el ID de tu instancia de procesamiento, consulta Visualiza los detalles de una VM.
Haz clic en Ejecutar consulta.
Configura políticas de alertas basadas en registros
De forma predeterminada, los registros del operador de telemetría se envían a Cloud Logging. Te recomendamos que configures políticas de alertas basadas en los registros del operador de telemetría, que te notifiquen cuando aparezcan mensajes específicos en los registros. Estas alertas te ayudan a supervisar el funcionamiento del operador y solucionar problemas.
Para configurar una política de alertas basada en los registros generados por el operador de telemetría, completa los siguientes pasos:
Verifica que cumplas con los requisitos previos que se describen en la sección "Antes de comenzar" de Configura políticas de alertas basadas en registros.
En la Google Cloud consola de, accede a la página Explorador de registros.
En el panel de consultas, ingresa la consulta requerida:
logName="projects/PROJECT_ID/logs/google-cloud-workload-agent" severity=SEVERITY_LEVEL
Reemplaza
SEVERITY_LEVELpor un valor de nivel de gravedad admitido, que incluye:DEBUG,INFO,WARNINGyERROR. Te recomendamos que usesERRORo un valor de nivel de registro superior.Haz clic en Ejecutar consulta para validar la consulta.
Crea una alerta de registro.
Para obtener información sobre cómo crear esta alerta, consulta el paso tres del procedimiento que se describe en Crea una política de alertas basada en registros con el Explorador de registros.
Opcional: Habilita las evaluaciones específicas de producción
De las prácticas recomendadas que admite Workload Manager para los clústeres de OpenShift, algunas solo se aplican a los entornos de producción.
Workload Manager hace esta distinción verificando tu clúster, implementación o pod en busca de la etiqueta environment. Si el valor asociado con esta etiqueta es production, Workload Manager considera ese recurso como un recurso de producción.
Para informar a Workload Manager que un clúster pertenece a un entorno de producción, completa los siguientes pasos:
Crea un espacio de nombres
workloadmanager:oc create namespace workloadmanagerCrea un
ConfigMapen el espacio de nombresworkloadmanagercon la siguiente configuración:apiVersion: v1 kind: ConfigMap metadata: name: wlm-cluster-environment namespace: workloadmanager data: # Options: "production" or "non-production" environment: "production"
Para informar a Workload Manager que una implementación o un pod pertenece a un entorno de producción, agrega una etiqueta llamada environment a la definición del recurso con una de las siguientes opciones:
Aplica manualmente la siguiente configuración:
apiVersion: apps/v1 kind: Deployment metadata: name: my-app labels: # Options: "production" or "non-production" environment: "production" spec: ...Ejecuta el siguiente comando:
oc label --overwrite deployments DEPLOYMENT_NAME environment=productionReemplaza
DEPLOYMENT_NAMEpor el nombre de tu implementación.
Si aplicas la etiqueta environment en tu clúster de OpenShift, así como en una implementación o un pod que se ejecuta en el clúster, Workload Manager da prioridad al valor de la etiqueta establecido para la implementación o el pod sobre el valor de la etiqueta establecido para el clúster.
Opcional: Activa la recopilación de métricas
Después de configurar correctamente el operador de Cluster Services for OpenShift Telemetry en tu clúster de OpenShift, el operador recopila métricas del clúster y las envía a Workload Manager cada 30 minutos.
De manera opcional, en lugar de esperar 30 minutos para la recopilación programada de métricas, puedes activar manualmente el operador para que recopile métricas y las envíe a Workload Manager.
Para activar manualmente el operador para la recopilación de métricas, completa los siguientes pasos:
Abre tu terminal.
Busca el nombre del pod en ejecución:
POD_NAME=$(oc get pods -l app.kubernetes.io/name=workloadagent-operator --field-selector=status.phase=Running -o=name)Activa el operador para recopilar y enviar métricas:
oc debug -t $POD_NAME -- /openshift-docker-entrypoint.sh
¿Qué sigue?
- Crea y ejecuta una evaluación
- Obtén información sobre las prácticas recomendadas de Workload Manager para OpenShift