Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Risoluzione dei problemi Kubernetes politiche di rete per Amazon EKS
Log delle policy di rete
I log di flusso registrano se le connessioni sono consentite o negate da una policy di rete. I log delle policy di rete su ogni nodo includono i log di flusso per ogni pod che dispone di una policy di rete. I log delle policy di rete sono archiviati in /var/log/aws-routed-eni/network-policy-agent.log
. Di seguito è riportato un esempio del file 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"}
I registri delle politiche di rete sono disabilitati per impostazione predefinita. Per abilitare i registri delle politiche di rete, procedi nel seguente modo:
Nota
I registri delle politiche di rete richiedono 1 v aggiuntivo CPU per il aws-network-policy-agent
contenitore nel manifesto del VPC CNI aws-node
daemonset.
Componente EKS aggiuntivo Amazon
- AWS Management Console
-
-
Apri la EKSconsole Amazon
. -
Nel riquadro di navigazione a sinistra, seleziona Clusters, quindi seleziona il nome del cluster per cui desideri configurare il VPC CNI componente aggiuntivo Amazon.
-
Seleziona la scheda Componenti aggiuntivi.
-
Seleziona la casella nella parte superiore destra della casella del componente aggiuntivo e scegli Edit (Modifica).
-
Nella sezione Configura
name of addon
pagina:-
Seleziona una
v1.14.0-eksbuild.3
o versione successiva nell'elenco a discesa Versione. -
Scegli Impostazioni di configurazione facoltative.
-
Inserisci la JSON chiave di primo livello
"nodeAgent":
e il valore è un oggetto con una chiave"enablePolicyEventLogs":
e un valore compresi"true"
nei valori di configurazione. Il testo risultante deve essere un JSON oggetto valido. L'esempio seguente mostra i criteri di rete e i registri dei criteri di rete sono abilitati e i registri dei criteri di rete vengono inviati a CloudWatch Logs:{ "enableNetworkPolicy": "true", "nodeAgent": { "enablePolicyEventLogs": "true" } }
-
-
Lo screenshot seguente mostra un esempio di tale scenario.
- AWS CLI
-
-
Esegui il comando seguente AWS CLI. Sostituisci
my-cluster
con il nome del cluster e sostituisci il IAM ruolo ARN con il ruolo che stai utilizzando.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"}}'
-
Componenti aggiuntivi autogestiti
- Helm
-
Se hai installato il Amazon VPC CNI plugin for Kubernetes tramite
helm
, è possibile aggiornare la configurazione per scrivere i registri delle politiche di rete.-
Esegui il comando seguente per abilitare la policy di rete.
helm upgrade --set nodeAgent.enablePolicyEventLogs=true aws-vpc-cni --namespace kube-system eks/aws-vpc-cni
-
- kubectl
-
Se è stato installato il Amazon VPC CNI plugin for Kubernetes tramite
kubectl
, è possibile aggiornare la configurazione per scrivere i registri delle politiche di rete.-
Apri la
DaemonSet
delaws-node
nell'editor.kubectl edit daemonset -n kube-system aws-node
-
Sostituisci il
true
valorefalse
with nell'argomento del comando--enable-policy-event-logs=false
args:
nelaws-network-policy-agent
contenitore del manifesto del VPC CNIaws-node
daemonset.- args: - --enable-policy-event-logs=true
-
Invia i log delle policy di rete ad Amazon CloudWatch Logs
Puoi monitorare i log delle politiche di rete utilizzando servizi come Amazon CloudWatch Logs. Puoi utilizzare i seguenti metodi per inviare i log delle politiche di rete a Logs. CloudWatch
Per EKS i cluster, i registri delle politiche si troveranno in /aws/eks/
e per i cluster K8S autogestiti, i log verranno posizionati in /. cluster-name
/cluster//aws/k8s-cluster/cluster
Invia i registri delle politiche di rete con Amazon VPC CNI plugin for Kubernetes
Se si abilitano le policy di rete, ai pod viene aggiunto un secondo container aws-node
per un agente del nodo. Questo agente del nodo può inviare i registri delle politiche di rete a CloudWatch Logs.
Nota
Solo i log delle policy di rete vengono inviati dall'agente del nodo. Gli altri log creati da VPC CNI non sono inclusi.
Prerequisiti
-
Aggiungi le seguenti autorizzazioni come strofa o politica separata al IAM ruolo che stai utilizzando per. VPC CNI
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" } ] }
Componente EKS aggiuntivo Amazon
- AWS Management Console
-
-
Apri la EKSconsole Amazon
. -
Nel riquadro di navigazione a sinistra, seleziona Clusters, quindi seleziona il nome del cluster per cui desideri configurare il VPC CNI componente aggiuntivo Amazon.
-
Seleziona la scheda Componenti aggiuntivi.
-
Seleziona la casella nella parte superiore destra della casella del componente aggiuntivo e scegli Edit (Modifica).
-
Nella sezione Configura
name of addon
pagina:-
Seleziona una
v1.14.0-eksbuild.3
o versione successiva nell'elenco a discesa Versione. -
Scegli Impostazioni di configurazione facoltative.
-
Inserisci la JSON chiave di primo livello
"nodeAgent":
e il valore è un oggetto con una chiave"enableCloudWatchLogs":
e un valore compresi"true"
nei valori di configurazione. Il testo risultante deve essere un JSON oggetto valido. L'esempio seguente mostra i criteri di rete e i registri dei criteri di rete sono abilitati e i registri vengono inviati a CloudWatch Logs:{ "enableNetworkPolicy": "true", "nodeAgent": { "enablePolicyEventLogs": "true", "enableCloudWatchLogs": "true", } }
-
Lo screenshot seguente mostra un esempio di tale scenario.
+ image: :images/ console-cni-config-network - policy-logs-cwl .png [AWS Management Console mostra il VPC CNI componente aggiuntivo con i criteri di rete e i log nella configurazione opzionale. CloudWatch , larghezza scalata = 80%]
-
- AWS CLI
-
-
Eseguite il comando seguente. AWS CLI Sostituisci
my-cluster
con il nome del cluster e sostituisci il IAM ruolo ARN con il ruolo che stai utilizzando.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"}}'
-
Componenti aggiuntivi autogestiti
- Helm
-
Se hai installato il Amazon VPC CNI plugin for Kubernetes tramite
helm
, è possibile aggiornare la configurazione per inviare i log delle politiche di rete a CloudWatch Logs.-
Esegui il comando seguente per abilitare i registri delle politiche di rete e inviarli a Logs. CloudWatch
helm upgrade --set nodeAgent.enablePolicyEventLogs=true --set nodeAgent.enableCloudWatchLogs=true aws-vpc-cni --namespace kube-system eks/aws-vpc-cni
-
- kubectl
-
-
Apri la
DaemonSet
delaws-node
nell'editor.kubectl edit daemonset -n kube-system aws-node
-
Sostituisci il
true
valorefalse
with in due argomenti di comando--enable-policy-event-logs=false
e--enable-cloudwatch-logs=false
inargs:
in theaws-network-policy-agent
container del VPC CNIaws-node
daemonset manifest.- args: - --enable-policy-event-logs=true - --enable-cloudwatch-logs=true
-
Invia i registri delle politiche di rete con un Fluent Bit demone
Se stai usando Fluent Bit in un demonset per inviare i log dai nodi, puoi aggiungere una configurazione per includere i log delle policy di rete provenienti dalle policy di rete. È possibile utilizzare la configurazione di esempio seguente:
[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
Incluso eBPF SDK
Il Amazon VPC CNI plugin for Kubernetes installa eBPF SDKraccolta di strumenti sui nodi. Puoi utilizzare il plugin eBPF SDKstrumenti per identificare i problemi relativi alle politiche di rete. Ad esempio, il comando seguente elenca i programmi in esecuzione sul nodo.
sudo /opt/cni/bin/aws-eks-na-cli ebpf progs
Per eseguire questo comando, è possibile utilizzare qualsiasi metodo di connessione al nodo.