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
-
-
Ouvrez la EKSconsole Amazon
. -
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.
-
Choisissez l'onglet Modules complémentaires.
-
Cochez la case en haut à droite de la zone du module complémentaire, puis sélectionnez Edit (Modifier).
-
Sur le Configure
name of addon
page :-
Sélectionnez une version
v1.14.0-eksbuild.3
ou ultérieure dans la liste déroulante Version. -
Sélectionnez Paramètres de configuration facultatifs.
-
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.
- AWS CLI
-
-
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.-
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.-
Ouvrez le
aws-node
DaemonSet
dans votre éditeur.kubectl edit daemonset -n kube-system aws-node
-
Remplacez le
false
partrue
dans l'argument de commande--enable-policy-event-logs=false
args:
dans leaws-network-policy-agent
conteneur du manifeste du VPC CNIaws-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/
et pour les clusters K8S autogérés, les journaux seront placés sous /. cluster-name
/cluster//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
-
-
Ouvrez la EKSconsole Amazon
. -
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.
-
Choisissez l'onglet Modules complémentaires.
-
Cochez la case en haut à droite de la zone du module complémentaire, puis sélectionnez Edit (Modifier).
-
Sur le Configure
name of addon
page :-
Sélectionnez une version
v1.14.0-eksbuild.3
ou ultérieure dans la liste déroulante Version. -
Sélectionnez Paramètres de configuration facultatifs.
-
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
-
-
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.-
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
-
-
Ouvrez le
aws-node
DaemonSet
dans votre éditeur.kubectl edit daemonset -n kube-system aws-node
-
Remplacez le
false
partrue
dans deux arguments de commande--enable-policy-event-logs=false
et--enable-cloudwatch-logs=false
dans leaws-network-policy-agent
conteneurargs:
dans le manifeste du VPC CNIaws-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.