Auxiliar de métricas
El auxiliar de métricas de CNI es una herramienta que puede utilizar para extraer información de la interfaz de red y la dirección IP, agregar métricas en el nivel del clúster y publicar las métricas en Amazon CloudWatch. Para obtener más información acerca del asistente de métricas, consulte cni-metrics-helper
Al administrar un clúster de Amazon EKS, es posible que desee saber cuántas direcciones IP se han asignado y cuántas se encuentran disponibles. El ayudante de métricas de CNI le ayuda a:
-
Realizar un seguimiento de estas métricas a lo largo del tiempo
-
Solución y diagnóstico de problemas relacionados con la asignación y recuperación de IP
-
Proporcionar información detallada sobre la planificación de capacidad
Cuando se aprovisiona un nodo, el complemento CNI asigna de forma automática un grupo de direcciones IP secundarias de la subred del nodo a la interfaz de red principal (eth0
). Este grupo de direcciones IP se conoce como grupo activo y su tamaño lo determina el tipo de instancia del nodo. Por ejemplo, una instancia c4.large
puede admitir tres interfaces de red y nueve direcciones IP por interfaz. El número de direcciones IP disponibles para un pod determinado es una menor que el máximo (de diez), ya que una de las direcciones IP está reservada para la propia interfaz de red elástica. A fin de obtener más información, consulte Direcciones IP por interfaz de red por tipo de instancia en la Guía del usuario de Amazon EC2 para instancias de Linux.
A medida que se agota el grupo de direcciones IP, el complemento asocia automáticamente otra interfaz de red elástica a la instancia y asigna otro conjunto de direcciones IP secundarias a esa interfaz. Este proceso continúa hasta que el nodo ya no puede admitir interfaces de red elásticas adicionales.
Las siguientes métricas se recopilan para el clúster y se exportan a CloudWatch:
-
El número máximo de interfaces de red que puede admitir el clúster
-
El número de interfaces de red que se han asignado a los pods
-
El número de direcciones IP asignadas actualmente a los pods
-
Número total y máximo de direcciones IP disponibles
-
El número de errores de ipamD
Requisitos previos
-
Un proveedor de OpenID Connect (OIDC) existente de AWS Identity and Access Management (IAM) para el clúster. Para determinar si ya tiene un proveedor o para crear uno, consulte Crear un proveedor de OIDC de IAM para su clúster.
-
La versión
2.6.3
o posterior, o bien, la versión1.23.11
o posterior de la AWS CLI instalada y configurada en su computadora o AWS CloudShell. Para obtener más información, consulte Instalar, actualizar y desinstalar la AWS CLI y Configuración rápida conaws configure
en la Guía del usuario de AWS Command Line Interface. -
La herramienta de la línea de comandos de
kubectl
está instalada en la computadora o AWS CloudShell. La versión puede ser la misma o hasta una versión secundaria anterior o posterior a la versión Kubernetes de su clúster. Por ejemplo, si la versión del clúster es 1.21, puede utilizar la versiónkubectl
1.20,1.21 o 1.22 con él. Para instalar o actualizarkubectl
, consulte Instalar kubectl. -
Si su clúster es
1.21
o posterior, asegúrese de que sus complementos Amazon VPC CNI plugin for Kubernetes,kube-proxy
y CoreDNS se encuentren en las versiones mínimas enumeradas en los Tokens de cuenta de servicio.
Implementar el asistente de métricas de CNI
Cree una política y un rol de IAM e implemente el asistente de métricas.
Para implementar el auxiliar de métricas de CNI
-
Cree una política de IAM que otorgue los permisos de
cloudwatch:PutMetricData
al asistente de métricas de CNI para enviar datos de métricas a CloudWatch.-
Copie el siguiente contenido en un archivo denominado
.cni-metrics-helper-policy.json
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*" } ] }
-
Cree una política de IAM denominada
.AmazonEKSVPCCNIMetricsHelperPolicy
aws iam create-policy --policy-name
AmazonEKSVPCCNIMetricsHelperPolicy
\ --description "Grants permission to write metrics to CloudWatch" \ --policy-document file://cni-metrics-helper-policy.json
-
-
Cree un rol de IAM y asocie la política de IAM al rol. Cree una cuenta de servicio de Kubernetes. Agregue un comentario en la cuenta de servicio de Kubernetes con el ARN del rol de IAM y el rol de IAM con el nombre de cuenta de servicio de Kubernetes. Puede crear el rol mediante
eksctl
o AWS CLI. -
Utilice el siguiente comando para la Región de AWS en el que se encuentra el clúster para agregar la versión recomendada del asistente de métricas de CNI al clúster.
importante Solo debe actualizar una versión secundaria a la vez. Por ejemplo, si su versión secundaria actual es
1.9
y desea actualizar a1.11
, primero debe actualizar a1.10
y, a continuación, actualizar a1.11
. Para ello, cambie el número de versión en uno de los comandos siguientes.La última versión y la más reciente funciona con todas las versiones de Kubernetes compatibles con Amazon EKS.
China (Pekín) (
cn-north-1
) o China (Ningxia) (cn-northwest-1
)kubectl apply -f https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/v
1.11.2
/config/master/cni-metrics-helper-cn.yamlAWS GovCloud (EE. UU. Este) (
us-gov-east-1
)kubectl apply -f https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/v
1.11.2
/config/master/cni-metrics-helper-us-gov-east-1.yamlAWS GovCloud (EE. UU. Oeste) (
us-gov-west-1
)kubectl apply -f https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/v
1.11.2
/config/master/cni-metrics-helper-us-gov-west-1.yamlTodas las demás Regiones de AWS
-
Descargue el archivo de manifiesto.
curl -o cni-metrics-helper.yaml https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/v
1.11.2
/config/master/cni-metrics-helper.yaml -
Si el clúster no está en
us-west-2
, reemplace
en el siguiente comando por la Región de AWS en la que se encuentra el clúster y, a continuación, jecute el modificado para reemplazarregion-code
us-west-2
en el archivo con su Región de AWS.sed -i.bak -e 's/us-west-2/
region-code
/' cni-metrics-helper.yaml -
Si el clúster no está en
us-west-2
, reemplace
en el siguiente comando por la cuenta de Registros de imágenes de contenedor de Amazon para la Región de AWS en la que se encuentra el clúster y, a continuación, jecute el modificado para reemplazar602401143452
602401143452
en el archivo.sed -i.bak -e 's/602401143452/
602401143452
/' cni-metrics-helper.yaml -
Aplique el archivo de manifiesto al clúster.
kubectl apply -f cni-metrics-helper.yaml
-
-
Agregue un comentario en la cuenta de servicio de Kubernetes de
cni-metrics-helper
creada en el paso anterior con el ARN del rol de IAM que creó anteriormente. Reemplace
con su ID de cuenta de111122223333
my-cluster
con el nombre del clúster yAmazonEKSVPCCNIMetricsHelperRole
con el nombre del rol de IAM que creó en el paso anterior.kubectl annotate serviceaccount cni-metrics-helper \ -n kube-system \ eks.amazonaws.com/role-arn=arn:aws:iam::
111122223333
:role/AmazonEKSVPCCNIMetricsHelperRole
(Opcional) Configure el tipo de punto de conexión AWS Security Token Service utilizado por su cuenta de servicio de Kubernetes. Para obtener más información, consulte Configure el punto de conexión AWS Security Token Service de una cuenta de servicio .
-
Reinicie la implementación de
cni-metrics-helper
.kubectl rollout restart \ deployment cni-metrics-helper \ -n kube-system
Creación de un panel de métricas
Después de haber implementado el auxiliar de métricas de CNI, puede ver las métricas de CNI en la consola de CloudWatch. Este tema le ayuda a crear un panel para ver las métricas de CNI del clúster.
Para crear un panel de métricas de CNI
-
Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/
. -
En el panel de navegación izquierdo, seleccione Metrics (Métricas) y, a continuación, seleccione All metrics (Todas las métricas).
-
En Custom Namespaces (Espacios de nombres personalizados), seleccione Kubernetes.
-
Seleccione CLUSTER_ID.
-
En la pestaña Metrics (Métricas), seleccione las métricas que desea agregar al panel.
-
En la parte superior derecha de la consola, seleccione Actions (Acciones) y, luego, Add to dashboard (Agregar al panel).
-
En la sección Select a dashboard (Seleccionar un panel), seleccione Create new (Crear nuevo), ingrese un nombre para el panel, como
EKS-CNI-metrics
, y, a continuación, seleccione Create (Crear). -
En la sección Widget type (Tipo de widget), elija Number (Número).
-
En la sección Customize widget title (Personalizar título del widget), ingrese un nombre lógico para el título del panel, como
EKS CNI metrics
. -
Seleccione Add to dashboard (Agregar al panel) para terminar. Ahora las métricas de CNI se agregan a un panel que puede monitorear, tal y como se muestra a continuación.