Quiero usar el complemento de observabilidad de Amazon CloudWatch para supervisar mis clústeres de Amazon Elastic Kubernetes Service (Amazon EKS).
Solución
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulte Solución de problemas de AWS CLI. Además, asegúrese de utilizar la versión más reciente de la AWS CLI.
Requisitos previos:
Creación de un rol de IAM para el complemento
Para crear un proveedor de OpenID Connect (OIDC) de AWS Identity and Access Management (IAM), ejecute el siguiente comando:
eksctl utils associate-iam-oidc-provider --cluster my-cluster-name --approve
Nota: Sustituya my-cluster-name por el nombre de su clúster. Para obtener más información, consulte Asignación de roles de IAM a las cuentas de servicio de Kubernetes.
Para crear un rol de IAM con CloudWatchAgentServerPolicy adjunto, ejecute el siguiente comando.
eksctl create iamserviceaccount \
--name cloudwatch-agent \
--namespace amazon-cloudwatch
--cluster my-cluster-name \
--role-name AmazonCloudWatchObservabilityRole \
--attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \
--role-only \
--approve
Nota: Sustituya my-cluster-name por el nombre de su clúster. El comando anterior también configura la cuenta de servicio del agente para que utilice OIDC para asumir el rol.
Instalación del complemento
Para instalar el complemento, utilice la consola de Amazon EKS o la AWS CLI.
Consola Amazon EKS
Siga estos pasos:
- Abra la consola de Amazon EKS.
- En el panel de navegación, seleccione Clústeres.
- Elija el nombre de su clúster y, a continuación, elija la pestaña Complementos.
- Seleccione Obtener más complementos y, a continuación, seleccione Seleccionar complementos.
- En la sección Complementos de Amazon EKS, seleccione Observabilidad de Amazon CloudWatch y, a continuación, elija Siguiente.
- En la página Configuración de los ajustes de los complementos seleccionados, seleccione la versión que quiere usar.
- En Seleccionar rol de IAM, seleccione AmazonCloudWatchObservabilityRole y, a continuación, elija Siguiente.
- En la página Revisar y agregar, seleccione Crear.
AWS CLI
Para instalar el complemento, ejecute el siguiente comando create-addon:
aws eks create-addon --addon-name amazon-cloudwatch-observability --cluster-name my-cluster-name --service-account-role-arn arn:aws:iam::Account-ID:role/AmazonCloudWatchObservabilityRole
Nota: Sustituya my-cluster-name por el nombre de su clúster y Account-ID por el ID de su cuenta de AWS.
Una vez finalizada la instalación, Amazon EKS crea un espacio de nombres amazon-cloudwatch en su clúster. El agente de CloudWatch y los pods de Fluent Bit también están activos en su clúster.
Para ver los pods activos, ejecute el siguiente comando:
kubectl get pods -n amazon-cloudwatch
Resultado de ejemplo:
NAME READY STATUS RESTARTS AGE
amazon-cloudwatch-observability-controller-manager-6c685b4wsdbg 1/1 Running 0 16s
cloudwatch-agent-76bnd 1/1 Running 0 16s
cloudwatch-agent-nbdgm 1/1 Running 0 16s
fluent-bit-45wl4 1/1 Running 0 16s
fluent-bit-rsfc7 1/1 Running 0 16s
Despliegue de una aplicación de muestra
Si no tiene cargas de trabajo en su clúster de las que recopilar métricas, despliegue el siguiente ejemplo de carga de trabajo:
cat <<EOF >deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: eks-cw-sample-app
labels:
app: eks-cw-sample-app
spec:
replicas: 3
selector:
matchLabels:
app: eks-cw-sample-app
template:
metadata:
labels:
app: eks-cw-sample-app
spec:
containers:
- name: nginx
image: public.ecr.aws/nginx/nginx:1.27
ports:
- name: http
containerPort: 80
imagePullPolicy: IfNotPresent
EOF
kubectl apply -f deployment.yaml
Utilice la carga de trabajo anterior para comprobar que CloudWatch recopila correctamente las métricas.
Supervisión de los clústeres en la consola de CloudWatch
Tras instalar Información de contenedores, consulte sus métricas en la consola de CloudWatch.
También puede usar el registro de AWS Fargate en sus clústeres.
Información relacionada
Registro y supervisión en Amazon EKS