Instalar agentes de instâncias autogerenciadas do Kubernetes
Siga as etapas nesta seção para instalar agentes do Network Flow Monitor de workloads em clusters autogerenciados do Kubernetes. Depois de concluir as etapas, os pods de agentes do Network Flow Monitor serão executados em todos os nós de cluster autogerenciados do Kubernetes.
Caso use o Amazon Elastic Kubernetes Service (Amazon EKS), as etapas de instalação a serem seguidas estão na seguinte seção: Instalar o complemento do AWS EKS Network Flow Monitor Agent.
Conteúdo
Antes de começar
Antes de iniciar o processo de instalação, siga as etapas nesta seção para garantir que seu ambiente esteja configurado para instalar agentes com êxito nos clusters corretos do Kubernetes.
- Certifique-se de que a versão do Kubernetes seja compatível
A instalação do agente do Network Flow Monitor requer a versão 1.25 do Kubernetes ou uma versão mais recente.
- Certifique-se de que você instalou as ferramentas necessárias
Os scripts que você usa para esse processo de instalação exigem a instalação das ferramentas a seguir. Se você ainda não tiver as ferramentas instaladas, consulte os links fornecidos para obter mais informações.
A AWS Command Line Interface (CLI). Para obter mais informações, consulte Installing or updating to the latest version of the AWS Command Line Interface no Guia de referência da AWS Command Line Interface.
O gerenciador de pacotes do Helm. Para obter mais informações, consulte Installing Helm
no site do Helm. A ferramenta de linha de comando
kubectl
. Para obter mais informações, consulte Install kubectlno site do Kubernetes. A dependência do comando
make
do Linux. Para obter mais informações, consulte a seguinte postagem no blog: Intro to make Linux Command: Installation and Usage. Por exemplo, realize uma das seguintes ações: Para distribuições baseadas em Debian, como o Ubuntu, use o seguinte comando:
sudo apt-get install make
Para distribuições com base em RPM, como o CentOS, use o seguinte comando:
sudo yum install make
- Verifique se você tem variáveis de ambiente KubeConfig válidas e configuradas corretamente
A instalação do agente do Network Flow Monitor usa a ferramenta de gerenciamento de pacotes do Helm, que usa a variável kubeconfig,
$HELM_KUBECONTEXT
, para determinar os clusters de destino do Kubernetes com os quais trabalhar. Além disso, esteja ciente de que, quando o Helm executa scripts de instalação, por padrão, ele faz referência ao arquivo~/.kube/config
padrão. Você pode alterar as variáveis do ambiente de configuração, usar um arquivo de configuração diferente (atualizando$KUBECONFIG
) ou definir o cluster de destino com o qual você deseja trabalhar (atualizando$HELM_KUBECONTEXT
).- Crie um namespace do Kubernetes do Network Flow Monitor
A aplicação do Kubernetes do agente do Network Flow Monitor instala os recursos em um namespace específico. O namespace deve existir para que a instalação tenha êxito. Para garantir que o namespace necessário esteja em execução, execute um dos seguintes procedimentos:
Crie o namespace padrão,
amazon-network-flow-monitor
, antes de começar.Crie um namespace diferente e, em seguida, defina-o na variável
$NAMESPACE
de ambiente ao executar a instalação para criar destinos.
Fazer download de charts do Helm e instalar agentes
Você pode fazer download dos charts do Helm do agente do Network Flow Monitor do repositório público da AWS usando o comando a seguir. Certifique-se de que você primeiro se autentique com a conta do GitHub.
git clone https://github.com/aws/network-flow-monitor-agent.git
No diretório ./charts/amazon-network-flow-monitor-agent
, você pode encontrar o Makefile e os charts do Helm do agente do Network Flow Monitor que contêm os destinos do make de instalação que você usa para instalar agentes. Você instala agentes do Network Flow Monitor usando o seguinte destino de Makefile: helm/install/customer
Caso deseje, você pode personalizar a instalação, por exemplo, fazendo o seguinte:
# 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 verificar se os pods de aplicações do Kubernetes para os agentes do Network Flow Monitor foram criados e implantados com êxito, verifique se o estado deles é Running
. Você pode verificar o estado dos agentes executando o seguinte comando: kubectl get pods -o wide -A | grep amazon-network-flow-monitor
Configure permissões para que os agentes forneçam métricas
Depois de instalar agentes para o Network Flow Monitor, você deve permitir que eles enviem métricas de rede para as APIs de ingestão do Network Flow Monitor. Os agentes no Network Flow Monitor devem ter permissão para acessar as APIs de ingestão do Network Flow Monitor para que possam fornecer métricas de fluxo de rede que coletaram para cada instância. Você concede esse acesso implementando perfis do IAM de contas de serviço (IRSA).
Para permitir que os agentes forneçam métricas de rede ao Network Flow Monitor, siga as etapas nesta seção.
Implementar perfis do IAM de contas de serviço
Os perfis do IAM de contas de serviço fornecem a capacidade de gerenciar credenciais das aplicações, semelhante à maneira como os perfis de instância do Amazon EC2 fornecem credenciais para instâncias do Amazon EC2. A implementação do IRSA é a forma recomendada de fornecer todas as permissões exigidas pelos agentes do Network Flow Monitor para acessar com êxito as APIs de ingestão do Network Flow Monitor. Para obter mais informações, consulte Perfis do IAM para contas de serviço no Guia do usuário do Amazon EKS.
Ao configurar o IRSA para agentes do Network Flow Monitor, use as seguintes informações:
ServiceAccount: ao definir a política de confiança do perfil do IAM, em
ServiceAccount
, especifiqueaws-network-flow-monitor-agent-service-account
.Namespace: para o
namespace
, especifiqueamazon-network-flow-monitor
.Implantação temporária de credenciais: quando você configura as permissões depois de implantar os pods de agentes do Network Flow Monitor, atualizando a
ServiceAccount
com o perfil do IAM, o Kubernetes não implanta as credenciais do perfil do IAM. Para garantir que os agentes do Network Flow Monitor obtenham as credenciais do perfil do IAM que você especificou, você deve implantar uma reinicialização deDaemonSet
. Por exemplo, use o comando como o seguinte:kubectl rollout restart daemonset -n amazon-network-flow-monitor aws-network-flow-monitor-agent
Confirme se o agente do Network Flow Monitor está acessando com êxito as APIs de ingestão do Network Flow Monitor
Você pode verificar se a configuração dos agentes está funcionando corretamente usando os logs HTTP 200 dos pods de agentes do Network Flow Monitor. Primeiro, pesquise um pod de agente do Network Flow Monitor e, em seguida, pesquise nos arquivos de logs para encontrar solicitações HTTP 200 com êxito. Por exemplo, você pode fazer o seguinte:
Localize o nome do pod do agente do Network Flow Monitor. Por exemplo, é possível usar o seguinte comando:
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)
Use o comando grep para todos os logs HTTP do nome do pod que você localizou. Se você tiver alterado o NAMESPACE, certifique-se de usar o novo.
NAMESPACE=amazon-network-flow-monitor kubectl logs $
RANDOM_AGENT_POD_NAME
-\-namespace ${NAMESPACE} | grep HTTP
Se o acesso for concedido com êxito, você deverá ver entradas de logs semelhantes às seguintes:
... {"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}
Observe que o agente do Network Flow Monitor publica relatórios de fluxo de rede a cada 30 segundos, chamando as APIs de ingestão do Network Flow Monitor.