Instalación de agentes para instancias de Kubernetes autoadministradas
Siga los pasos de esta sección para instalar agentes de Network Flow Monitor para cargas de trabajo en clústeres de Kubernetes autoadministrados. Tras completar los pasos, los pods de agente de Network Flow Monitor se ejecutarán en todos los nodos del clúster de Kubernetes autoadministrado.
Si usa Amazon Elastic Kubernetes Service (Amazon EKS), los pasos de instalación que debe seguir se encuentran en la siguiente sección: Instalación del complemento AWS Network Flow Monitor Agent para EKS.
Contenido
Antes de empezar
Antes de iniciar el proceso de instalación, siga los pasos de esta sección para asegurarse de que su entorno está configurado para instalar correctamente los agentes en los clústeres de Kubernetes correctos.
- Confirme que su versión de Kubernetes es compatible
La instalación de agentes de Network Flow Monitor requiere la versión 1.25 de Kubernetes o una versión más reciente.
- Asegúrese de instalar las herramientas necesarias
Los scripts que use para este proceso de instalación requieren a su vez la instalación de las siguientes herramientas. Si aún no tiene las herramientas instaladas, consulte los enlaces proporcionados para obtener más información.
La AWS Command Line Interface (CLI). Para obtener más información, consulte Installing or updating to the latest version of the AWS Command Line Interface en la Guía de referencia de AWS Command Line Interface.
El administrador de paquetes Helm. Para obtener más información sobre el cifrado, consulte Instalación de Helm
en el sitio web de Helm. La herramienta de línea de comandos de
kubectl
. Para obtener más información, consulte Instalación de kubectlen el sitio web de Kubernetes. La dependencia del comando
make
de Linux. Para obtener más información, consulte la siguiente entrada del blog: Intro to make Linux Command: Installation and Usage. Por ejemplo, lleve a cabo una de las siguientes acciones: Para las distribuciones basadas en Debian, como Ubuntu, use el siguiente comando:
sudo apt-get install make
Para las distribuciones basadas en RPM, como CentOS, use el siguiente comando:
sudo yum install make
- Asegúrese de tener variables de entorno de KubeConfig válidas y que se hayan configurado correctamente
La instalación de agentes de Network Flow Monitor usa la herramienta de administración de paquetes Helm, que usa la variable kubeconfig,
$HELM_KUBECONTEXT
, para determinar los clústeres de Kubernetes de destino con los que se va a trabajar. Además, tenga en cuenta que cuando Helm ejecuta scripts de instalación, de forma predeterminada, hace referencia al archivo estándar~/.kube/config
. Puede cambiar las variables del entorno de configuración para usar un archivo de configuración diferente (mediante la actualización de$KUBECONFIG
) o para definir el clúster de destino con el que quiere trabajar (mediante la actualización de$HELM_KUBECONTEXT
).- Creación de un espacio de nombres de Kubernetes para Network Flow Monitor
La aplicación Kubernetes del agente de Network Flow Monitor instala sus recursos en un espacio de nombres específico. El espacio de nombres debe existir para que la instalación se complete correctamente. Para asegurarse de que el espacio de nombres necesario está activo, puede elegir una de las siguientes opciones:
Cree el espacio de nombres predeterminado,
amazon-network-flow-monitor
, antes de empezar.Cree un espacio de nombres diferente y, a continuación, defínalo en la variable de entorno
$NAMESPACE
cuando ejecute la instalación para crear destinos.
Descarga de gráficos de Helm e instalación de agentes
Puede descargar los gráficos de Helm del agente de Network Flow Monitor desde el repositorio público de AWS mediante el siguiente comando. Asegúrese de autenticarse primero con su cuenta de GitHub.
git clone https://github.com/aws/network-flow-monitor-agent.git
En el directorio ./charts/amazon-network-flow-monitor-agent
, puede encontrar los gráficos de Helm y el Makefile del agente de Network Flow Monitor, que contienen los objetivos make de instalación que se usan para instalar los agentes. Los agentes de Network Flow Monitor se instalan mediante el siguiente destino de Makefile: helm/install/customer
Puede personalizar la instalación si lo desea, por ejemplo, por medio de uno de los siguientes procedimientos:
# Overwrite the kubeconfig files to use KUBECONFIG=<MY_KUBECONFIG_ABS_PATH> make helm/install/customer # Overwrite the Kubernetes namespace to use NAMESPACE=<MY_K8S_NAMESPACE> make helm/install/customer
Para comprobar que los pods de aplicaciones de Kubernetes para los agentes de Network Flow Monitor se crearon e implementaron correctamente, compruebe que su estado es Running
. Puede comprobar el estado de los agentes ejecutando el siguiente comando: kubectl get pods -o wide -A | grep amazon-network-flow-monitor
Configuración de permisos de entrega de métricas para agentes
Después de instalar los agentes para Network Flow Monitor, debe permitir que los agentes envíen métricas de red a las API de ingestión de Network Flow Monitor. Los agentes de Network Flow Monitor deben tener permiso para acceder a las API de ingestión de Network Flow Monitor para poder entregar las métricas de flujo de red que hayan recopilado para cada instancia. Para conceder este acceso, debe implementar roles de IAM para las cuentas de servicio (IRSA).
Para permitir que los agentes envíen métricas de red a Network Flow Monitor, siga los pasos descritos en esta sección.
Implemente roles de IAM para cuentas de servicio
Los roles de IAM para cuentas de servicio ofrecen la posibilidad de administrar las credenciales para las aplicaciones, de un modo similar a cómo los perfiles de instancia de Amazon EC2 proporcionan credenciales a instancias de Amazon EC2. La implementación de las IRSA es la forma recomendada de proporcionar todos los permisos necesarios a los agentes de Network Flow Monitor para acceder correctamente a las API de ingestión de Network Flow Monitor. Para obtener más información, consulte Roles de IAM para cuentas de servicio en la Guía del usuario de Amazon EKS.
Al configurar las IRSA para los agentes de Network Flow Monitor, use la siguiente información:
ServiceAccount: cuando defina la política de confianza de su rol de IAM, para
ServiceAccount
, especifiqueaws-network-flow-monitor-agent-service-account
.Espacio de nombres: para el
namespace
, especifiqueamazon-network-flow-monitor
.Implementación temporal de credenciales: al configurar los permisos después de implementar los pods de agente de Network Flow Monitor y actualizar la
ServiceAccount
con su rol de IAM, Kubernetes no implementa las credenciales del rol de IAM. Para garantizar que los agentes de Network Flow Monitor adquieran las credenciales de rol de IAM que especificó, debe reiniciarDaemonSet
. Por ejemplo, use un comando como el siguiente:kubectl rollout restart daemonset -n amazon-network-flow-monitor aws-network-flow-monitor-agent
Confirmar que el agente de Network Flow Monitor acceda correctamente a las API de ingestión de Network Flow Monitor
Puede comprobar que la configuración de los agentes funciona correctamente usando los registros HTTP 200 de los pods de agentes de Network Flow Monitor. En primer lugar, busque un pod de agente de Network Flow Monitor y, a continuación, busque en los archivos de registro las solicitudes HTTP 200 que se hayan completado correctamente. Por ejemplo, puede hacer lo siguiente:
Busque el nombre de un pod de agente de Network Flow Monitor. Por ejemplo, puede usar el comando siguiente:
RANDOM_AGENT_POD_NAME=$(kubectl get pods -o wide -A | grep amazon-network-flow-monitor | grep Running | head -n 1 | tr -s ' ' | cut -d " " -f 2)
Recopile todos los registros HTTP del nombre del pod que haya encontrado. Si ha cambiado el ESPACIO DE NOMBRES, asegúrese de usar el nuevo.
NAMESPACE=amazon-network-flow-monitor kubectl logs $
RANDOM_AGENT_POD_NAME
-\-namespace ${NAMESPACE} | grep HTTP
Si el acceso se concedió correctamente, debería ver entradas de registro similares a las siguientes:
... {"level":"INFO","message":"HTTP request complete","status":200,"target":"amzn_nefmon::reports::publisher_endpoint","timestamp":1737027525679} {"level":"INFO","message":"HTTP request complete","status":200,"target":"amzn_nefmon::reports::publisher_endpoint","timestamp":1737027552827}
Tenga en cuenta que el agente de Network Flow Monitor publica los informes de flujo de red cada 30 segundos mediante una llamada a las API de ingestión de Network Flow Monitor.