Résolution des problèmes Kubernetes politiques réseau pour Amazon EKS - Amazon EKS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Résolution des problèmes Kubernetes politiques réseau pour Amazon EKS

Vous pouvez résoudre les problèmes et étudier les connexions réseau qui utilisent des politiques réseau en lisant les journaux des politiques réseau et en exécutant des outils à partir du e. BPF SDK

Journaux de stratégie réseau

Si les connexions sont autorisées ou refusées par un réseau, les stratégies sont enregistrées dans les journaux de flux. Les journaux de stratégie réseau de chaque nœud incluent les journaux de flux pour chaque pod doté d'une stratégie réseau. Les journaux de stratégie réseau sont stockés sur /var/log/aws-routed-eni/network-policy-agent.log. L'exemple suivant est extrait d'un fichier network-policy-agent.log :

{"level":"info","timestamp":"2023-05-30T16:05:32.573Z","logger":"ebpf-client","msg":"Flow Info: ","Src IP":"192.168.87.155","Src Port":38971,"Dest IP":"64.6.160","Dest Port":53,"Proto":"UDP","Verdict":"ACCEPT"}

Les journaux de politique réseau sont désactivés par défaut. Pour activer les journaux de politique réseau, procédez comme suit :

Note

Les journaux de politique réseau nécessitent 1 v supplémentaire CPU pour le aws-network-policy-agent conteneur dans le manifeste du VPC CNI aws-node daemonset.

EKSModule complémentaire Amazon

AWS Management Console
  1. Ouvrez la EKSconsole Amazon.

  2. Dans le volet de navigation de gauche, sélectionnez Clusters, puis sélectionnez le nom du cluster pour lequel vous souhaitez configurer le VPC CNI module complémentaire Amazon.

  3. Choisissez l'onglet Modules complémentaires.

  4. Cochez la case en haut à droite de la zone du module complémentaire, puis sélectionnez Edit (Modifier).

  5. Sur le Configure name of addon page :

    1. Sélectionnez une version v1.14.0-eksbuild.3 ou  ultérieure dans la liste déroulante Version.

    2. Sélectionnez Paramètres de configuration facultatifs.

    3. Entrez la JSON clé de niveau supérieur "nodeAgent": et la valeur est un objet avec une clé "enablePolicyEventLogs": et une valeur de "true" dans les valeurs de configuration. Le texte obtenu doit être un JSON objet valide. L'exemple suivant montre la politique réseau et les journaux de stratégie réseau sont activés, et les journaux de stratégie réseau sont envoyés à CloudWatch Logs :

      { "enableNetworkPolicy": "true", "nodeAgent": { "enablePolicyEventLogs": "true" } }

La capture d'écran suivante montre un exemple de ce scénario.

<shared id="consolelong"/>montrant le VPC CNI module complémentaire avec la politique réseau et CloudWatch les journaux dans la configuration optionnelle.
AWS CLI
  1. Exécutez la AWS CLI commande suivante. Remplacez my-cluster par le nom de votre cluster et remplacez le IAM rôle ARN par le rôle que vous utilisez.

    aws eks update-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version v1.14.0-eksbuild.3 \ --service-account-role-arn arn:aws: iam::123456789012:role/AmazonEKSVPCCNIRole \ --resolve-conflicts PRESERVE --configuration-values '{"nodeAgent": {"enablePolicyEventLogs": "true"}}'

Module complémentaire autogéré

Helm

Si vous avez installé Amazon VPC CNI plugin for Kubernetes grâce à helm cela, vous pouvez mettre à jour la configuration pour écrire les journaux de politique réseau.

  1. Exécutez la commande suivante pour activer la stratégie réseau.

    helm upgrade --set nodeAgent.enablePolicyEventLogs=true aws-vpc-cni --namespace kube-system eks/aws-vpc-cni
kubectl

Si vous avez installé Amazon VPC CNI plugin for Kubernetes grâce à kubectl cela, vous pouvez mettre à jour la configuration pour écrire les journaux de politique réseau.

  1. Ouvrez le aws-node DaemonSet dans votre éditeur.

    kubectl edit daemonset -n kube-system aws-node
  2. Remplacez le false par true dans l'argument de commande --enable-policy-event-logs=false args: dans le aws-network-policy-agent conteneur du manifeste du VPC CNI aws-node daemonset.

    - args: - --enable-policy-event-logs=true

Envoyer des journaux de politique réseau à Amazon CloudWatch Logs

Vous pouvez surveiller les journaux de politique réseau à l'aide de services tels qu'Amazon CloudWatch Logs. Vous pouvez utiliser les méthodes suivantes pour envoyer les journaux de politique réseau à CloudWatch Logs.

Pour les EKS clusters, les journaux de politique seront situés sous /aws/eks/cluster-name/cluster/ et pour les clusters K8S autogérés, les journaux seront placés sous /. /aws/k8s-cluster/cluster

Envoyez les journaux de politique réseau avec Amazon VPC CNI plugin for Kubernetes

Si vous activez la stratégie réseau, un deuxième conteneur est ajouté aux pods du aws-node pour unagent de nœud. Cet agent de nœud peut envoyer les journaux de politique réseau à CloudWatch Logs.

Note

Seuls les journaux de stratégie réseau sont envoyés par l'agent de nœud. Les autres journaux créés par le VPC CNI ne sont pas inclus.

Prérequis

  • Ajoutez les autorisations suivantes sous forme de strophe ou de politique distincte au IAM rôle que vous utilisez pour le VPCCNI.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" } ] }

EKSModule complémentaire Amazon

AWS Management Console
  1. Ouvrez la EKSconsole Amazon.

  2. Dans le volet de navigation de gauche, sélectionnez Clusters, puis sélectionnez le nom du cluster pour lequel vous souhaitez configurer le VPC CNI module complémentaire Amazon.

  3. Choisissez l'onglet Modules complémentaires.

  4. Cochez la case en haut à droite de la zone du module complémentaire, puis sélectionnez Edit (Modifier).

  5. Sur le Configure name of addon page :

    1. Sélectionnez une version v1.14.0-eksbuild.3 ou  ultérieure dans la liste déroulante Version.

    2. Sélectionnez Paramètres de configuration facultatifs.

    3. Entrez la JSON clé de niveau supérieur "nodeAgent": et la valeur est un objet avec une clé "enableCloudWatchLogs": et une valeur de "true" dans les valeurs de configuration. Le texte obtenu doit être un JSON objet valide. L'exemple suivant montre la politique réseau, les journaux de stratégie réseau sont activés et les journaux sont envoyés à CloudWatch Logs :

      { "enableNetworkPolicy": "true", "nodeAgent": { "enablePolicyEventLogs": "true", "enableCloudWatchLogs": "true", } }

La capture d'écran suivante montre un exemple de ce scénario.

+ image : :images/ console-cni-config-network - policy-logs-cwl .png [AWS Management Console montrant le VPC CNI module complémentaire avec la politique réseau et les CloudWatch journaux dans la configuration optionnelle. , largeur mise à l'échelle = 80 %]

AWS CLI
  1. Exécutez la AWS CLI commande suivante. Remplacez my-cluster par le nom de votre cluster et remplacez le IAM rôle ARN par le rôle que vous utilisez.

    aws eks update-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version v1.14.0-eksbuild.3 \ --service-account-role-arn arn:aws: iam::123456789012:role/AmazonEKSVPCCNIRole \ --resolve-conflicts PRESERVE --configuration-values '{"nodeAgent": {"enablePolicyEventLogs": "true", "enableCloudWatchLogs": "true"}}'

Module complémentaire autogéré

Helm

Si vous avez installé Amazon VPC CNI plugin for Kubernetes grâce àhelm, vous pouvez mettre à jour la configuration pour envoyer les journaux de politique réseau à CloudWatch Logs.

  1. Exécutez la commande suivante pour activer les journaux de politique réseau et les envoyer à CloudWatch Logs.

    helm upgrade --set nodeAgent.enablePolicyEventLogs=true --set nodeAgent.enableCloudWatchLogs=true aws-vpc-cni --namespace kube-system eks/aws-vpc-cni
kubectl
  1. Ouvrez le aws-node DaemonSet dans votre éditeur.

    kubectl edit daemonset -n kube-system aws-node
  2. Remplacez le false par true dans deux arguments de commande --enable-policy-event-logs=false et --enable-cloudwatch-logs=false dans le aws-network-policy-agent conteneur args: dans le manifeste du VPC CNI aws-node daemonset.

    - args: - --enable-policy-event-logs=true - --enable-cloudwatch-logs=true

Envoyez les journaux de politique réseau à l'aide d'un Fluent Bit daemonset

Si vous utilisez Fluent Bit dans un daemonset destiné à envoyer des journaux depuis vos nœuds, vous pouvez ajouter une configuration pour inclure les journaux de politique réseau à partir des politiques réseau. Vous pouvez utiliser l'exemple de configuration suivant :

[INPUT] Name tail Tag eksnp.* Path /var/log/aws-routed-eni/network-policy-agent*.log Parser json DB /var/log/aws-routed-eni/flb_npagent.db Mem_Buf_Limit 5MB Skip_Long_Lines On Refresh_Interval 10

Inclus eBPF SDK

Le Amazon VPC CNI plugin for Kubernetes installe eBPF SDKcollection d'outils sur les nœuds. Vous pouvez utiliser le plugin eBPF SDKdes outils pour identifier les problèmes liés aux politiques du réseau. Par exemple, la commande suivante répertorie les programmes qui s'exécutent sur le nœud.

sudo /opt/cni/bin/aws-eks-na-cli ebpf progs

Pour exécuter cette commande, vous pouvez utiliser n'importe quelle méthode pour vous connecter au nœud.