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 del host que supervisa de forma continua el estado y la configuración del clúster. El operador envía las métricas recopiladas a Gestor de cargas de trabajo. Luego, puedes usar la evaluación de Gestor de cargas de trabajo para analizar las cargas de trabajo que se ejecutan en tu clúster y detectar 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 de 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 Installing the OpenShift CLI. - 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 How to obtain theccoctltool for OpenShift 4. - Revisaste las regiones admitidas en las que puedes crear evaluaciones de Gestor de cargas de trabajo.
- Tu administrador te otorgó los roles de IAM necesarios para crear y ejecutar evaluaciones de Gestor de cargas de trabajo.
- Habilitaste el acceso a las APIs de Cloud.
Habilita el acceso a las API de Cloud
Compute Engine recomienda configurar las 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 deGoogle 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 las 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 las APIs y los servicios de Google. Para obtener información sobre cómo habilitar el Acceso privado a Google, consulta Configura el Acceso privado a Google.
Autentica usuarios en el clúster de OpenShift
Para realizar acciones administrativas, tú o tus usuarios deben autenticarse en el 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 instrucciones:
oc login "https://api.CLUSTER_DOMAIN:6443" -u kubeadminComo alternativa, obtén un token de autenticación de sesión para usarlo con el 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 recursos de Google Cloud, debes crear una cuenta de servicio para él en tu proyecto de Google Cloud .
Puedes autenticar el operador de telemetría como la cuenta de servicio con las siguientes opciones:
- (Recomendado) Autentica con la federación de identidades para cargas de trabajo
- Autentica con una clave de cuenta de servicio
Autentica el operador con la federación de identidades para cargas de trabajo
Para autenticar el operador de telemetría como la cuenta de servicio con la federación de identidades para cargas de trabajo, completa los siguientes pasos:
En tu terminal, extrae el manifiesto de
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 Google Cloud vinculaciones y las credenciales de Identity and Access Management (IAM):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: Es el ID del proyecto de Google Cloud proyecto en el que se ejecuta tu clúster de OpenShift.
Aplica los manifiestos de roles de IAM, secretos y proveedores de OpenID Connect (OIDC) generados al clúster:
oc apply -f ./ccoctl-out/manifests/
En los pasos anteriores, se crea una cuenta de servicio en tu proyecto Google Cloud 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 Gestor de cargas de trabajo, se requiere el rol de Escritor de estadísticas de Gestor de cargas de trabajo (
roles/workloadmanager.insightWriter). - Para enviar registros del operador a Cloud Logging, usa Logs Writer (
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 identidades para cargas de trabajo con 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 de
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 proyecto Google Cloud , 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 proyecto deGoogle Cloud en el que se ejecuta tu clúster de OpenShift.Para permitir que la cuenta de servicio acceda a los recursos de Google Cloud , otórgale los roles de IAM definidos en el manifiesto de
CredentialsRequest. 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 Gestor de cargas de trabajo, se requiere el rol de Escritor de estadísticas de Gestor de cargas de trabajo (
roles/workloadmanager.insightWriter). - Para enviar registros del operador a Cloud Logging, usa Logs Writer (
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 la 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 de suscripción declarativa en formato YAML. Para obtener información sobre estas opciones, consulta el documento de Red Hat Adding Operators to a cluster.
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 de administrador.
- En el panel de navegación izquierdo, expande la sección Operators y haz clic en OperatorHub.
En la barra de búsqueda que se encuentra debajo de Todos los elementos, ingresa Cluster Services for OpenShift Telemetry.
También puedes buscar ingresando Google. Esto filtra los operadores proporcionados por Google, incluido 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 Install.
En la página Install Operator, completa los siguientes pasos:
- En el campo Canal de actualización, selecciona stable.
- En el campo Modo de instalación, selecciona Un espacio de nombres específico en el clúster.
- En el campo Installed Namespace, selecciona el proyecto openshift-operators o crea un espacio de nombres de supervisión personalizado.
- En el campo Estrategia de aprobación, selecciona Automática o Manual.
- Haz clic en Instalar.
Para verificar que el operador se haya instalado correctamente, completa los siguientes pasos:
- Ve a Operators > Installed Operators.
- 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 Finalizó con éxito 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 Subscription YAML 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, comprueba 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 del 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 identidades para cargas de trabajo, 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 montaste la clave de la cuenta de servicio. El nombre del montaje debe coincidir con el archivo JSON de la clave de la 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 Running:
oc get pods -n openshift-operators -l app.kubernetes.io/name=workloadagent-operatorTambién puedes verificar la recopilación de métricas inspeccionando 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 consola de Google Cloud , accede a la página Explorador de registros.
En el panel de consultas, ingresa una consulta:
Para filtrar los registros de tu proyecto Google Cloud , usa la siguiente consulta:
logName="projects/PROJECT_ID/logs/google-cloud-workload-agent"
Reemplaza
PROJECT_IDpor el ID del proyecto deGoogle Cloud en el que se ejecuta tu clúster de OpenShift.Si ejecutas varios clústeres en tu proyecto Google Cloud y quieres 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 Cómo ver 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 notifican cuando aparecen 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 que genera 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 Cómo configurar políticas de alertas basadas en registros.
En la consola de Google Cloud , 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 más alto.Haz clic en Ejecutar consulta para validar la consulta.
Crea una alerta de registro.
Para aprender a 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 la producción
De las prácticas recomendadas que admite Gestor de cargas de trabajo para los clústeres de OpenShift, algunas solo se aplican a los entornos de producción.
Gestor de cargas de trabajo realiza esta distinción verificando si tu clúster, implementación o Pod tienen la etiqueta environment. Si el valor asociado a esta etiqueta es production, Gestor de cargas de trabajo considera que el recurso es de producción.
Para informar a Gestor de cargas de trabajo 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 Gestor de cargas de trabajo que una implementación o un Pod pertenecen 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 comando siguiente:
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 ejecute en el clúster, Gestor de cargas de trabajo le dará prioridad al valor de la etiqueta establecido para la implementación o el Pod por 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 Gestor de cargas de trabajo 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 Gestor de cargas de trabajo.
Para activar manualmente el operador para la recopilación de métricas, completa los siguientes pasos:
Abre la 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 más información sobre las prácticas recomendadas de Gestor de cargas de trabajo para OpenShift