Pemecahan Masalah Kubernetes kebijakan jaringan Untuk Amazon EKS - Amazon EKS

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pemecahan Masalah Kubernetes kebijakan jaringan Untuk Amazon EKS

Anda dapat memecahkan masalah dan menyelidiki koneksi jaringan yang menggunakan kebijakan jaringan dengan membaca log kebijakan Jaringan dan dengan menjalankan alat dari e. BPF SDK

Log kebijakan jaringan

Apakah koneksi diizinkan atau ditolak oleh kebijakan jaringan dicatat dalam log aliran. Log kebijakan jaringan pada setiap node menyertakan log aliran untuk setiap pod yang memiliki kebijakan jaringan. Log kebijakan jaringan disimpan di/var/log/aws-routed-eni/network-policy-agent.log. Contoh berikut adalah dari sebuah network-policy-agent.log file:

{"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"}

Log kebijakan jaringan dinonaktifkan secara default. Untuk mengaktifkan log kebijakan jaringan, ikuti langkah-langkah berikut:

catatan

Log kebijakan jaringan memerlukan tambahan 1 v CPU untuk aws-network-policy-agent penampung dalam manifes VPC CNI aws-node daemonset.

EKSPengaya Amazon

AWS Management Console
  1. Buka EKSkonsol Amazon.

  2. Di panel navigasi kiri, pilih Cluster, lalu pilih nama cluster yang ingin Anda konfigurasikan VPC CNI add-on Amazon.

  3. Pilih tab Add-ons.

  4. Pilih kotak di kanan atas kotak add-on dan kemudian pilih Edit.

  5. Pada Konfigurasi name of addon halaman:

    1. Pilih versi v1.14.0-eksbuild.3 atau yang lebih baru dalam daftar dropdown Versi.

    2. Perluas pengaturan konfigurasi opsional.

    3. Masukkan JSON kunci tingkat atas "nodeAgent": dan nilai adalah objek dengan kunci "enablePolicyEventLogs": dan nilai "true" dalam nilai Konfigurasi. Teks yang dihasilkan harus berupa JSON objek yang valid. Contoh berikut menunjukkan kebijakan jaringan dan log kebijakan jaringan diaktifkan, dan log kebijakan jaringan dikirim ke CloudWatch Log:

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

Screenshot berikut menunjukkan contoh skenario ini.

<shared id="consolelong"/>menampilkan VPC CNI add-on dengan kebijakan jaringan dan CloudWatch Log dalam konfigurasi opsional.
AWS CLI
  1. Jalankan AWS CLI perintah berikut. Ganti my-cluster dengan nama cluster Anda dan ganti IAM peran ARN dengan peran yang Anda gunakan.

    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"}}'

Add-on yang dikelola sendiri

Helm

Jika Anda telah menginstal Amazon VPC CNI plugin for Kubernetes melaluihelm, Anda dapat memperbarui konfigurasi untuk menulis log kebijakan jaringan.

  1. Jalankan perintah berikut untuk mengaktifkan kebijakan jaringan.

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

Jika Anda telah menginstal Amazon VPC CNI plugin for Kubernetes melaluikubectl, Anda dapat memperbarui konfigurasi untuk menulis log kebijakan jaringan.

  1. Buka aws-node DaemonSet di editor Anda.

    kubectl edit daemonset -n kube-system aws-node
  2. Ganti false dengan true dalam argumen perintah --enable-policy-event-logs=false di dalam aws-network-policy-agent wadah args: dalam manifes VPC CNI aws-node daemonset.

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

Kirim log kebijakan jaringan ke Amazon CloudWatch Logs

Anda dapat memantau log kebijakan jaringan menggunakan layanan seperti Amazon CloudWatch Logs. Anda dapat menggunakan metode berikut untuk mengirim log kebijakan jaringan ke CloudWatch Log.

Untuk EKS klaster, log kebijakan akan ditempatkan di bawah /aws/eks/cluster-name/cluster/ dan untuk klaster K8S yang dikelola sendiri, log akan ditempatkan di bawah /. /aws/k8s-cluster/cluster

Kirim log kebijakan jaringan dengan Amazon VPC CNI plugin for Kubernetes

Jika Anda mengaktifkan kebijakan jaringan, kontainer kedua akan ditambahkan ke aws-node pod untuk agen node. Agen node ini dapat mengirim log kebijakan jaringan ke CloudWatch Log.

catatan

Hanya log kebijakan jaringan yang dikirim oleh agen node. Log lain yang dibuat oleh VPC CNI tidak disertakan.

Prasyarat

  • Tambahkan izin berikut sebagai bait atau kebijakan terpisah ke IAM peran yang Anda gunakan untuk. VPC CNI

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

EKSPengaya Amazon

AWS Management Console
  1. Buka EKSkonsol Amazon.

  2. Di panel navigasi kiri, pilih Cluster, lalu pilih nama cluster yang ingin Anda konfigurasikan VPC CNI add-on Amazon.

  3. Pilih tab Add-ons.

  4. Pilih kotak di kanan atas kotak add-on dan kemudian pilih Edit.

  5. Pada Konfigurasi name of addon halaman:

    1. Pilih versi v1.14.0-eksbuild.3 atau yang lebih baru dalam daftar dropdown Versi.

    2. Perluas pengaturan konfigurasi opsional.

    3. Masukkan JSON kunci tingkat atas "nodeAgent": dan nilai adalah objek dengan kunci "enableCloudWatchLogs": dan nilai "true" dalam nilai Konfigurasi. Teks yang dihasilkan harus berupa JSON objek yang valid. Contoh berikut menunjukkan kebijakan jaringan dan log kebijakan jaringan diaktifkan, dan log dikirim ke CloudWatch Log:

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

Screenshot berikut menunjukkan contoh skenario ini.

+ image: :images/ console-cni-config-network - policy-logs-cwl .png [AWS Management Console menampilkan VPC CNI add-on dengan kebijakan jaringan dan CloudWatch Log dalam konfigurasi opsional. , lebar berskala = 80%]

AWS CLI
  1. Jalankan AWS CLI perintah berikut. Ganti my-cluster dengan nama cluster Anda dan ganti IAM peran ARN dengan peran yang Anda gunakan.

    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"}}'

Add-on yang dikelola sendiri

Helm

Jika Anda telah menginstal Amazon VPC CNI plugin for Kubernetes melaluihelm, Anda dapat memperbarui konfigurasi untuk mengirim log kebijakan jaringan ke CloudWatch Log.

  1. Jalankan perintah berikut untuk mengaktifkan log kebijakan jaringan dan mengirimkannya ke CloudWatch Log.

    helm upgrade --set nodeAgent.enablePolicyEventLogs=true --set nodeAgent.enableCloudWatchLogs=true aws-vpc-cni --namespace kube-system eks/aws-vpc-cni
kubectl
  1. Buka aws-node DaemonSet di editor Anda.

    kubectl edit daemonset -n kube-system aws-node
  2. Ganti false dengan true dalam dua argumen perintah --enable-policy-event-logs=false dan --enable-cloudwatch-logs=false di dalam aws-network-policy-agent wadah args: di manifes VPC CNI aws-node daemonset.

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

Mengirim log kebijakan jaringan dengan Fluent Bit daemonset

Jika Anda menggunakan Fluent Bit dalam daemonset untuk mengirim log dari node Anda, Anda dapat menambahkan konfigurasi untuk menyertakan log kebijakan jaringan dari kebijakan jaringan. Anda dapat menggunakan konfigurasi contoh berikut:

[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

Termasuk eBPF SDK

Bagian Amazon VPC CNI plugin for Kubernetes menginstal eBPF SDKkoleksi alat pada node. Anda dapat menggunakan eBPF SDKalat untuk mengidentifikasi masalah dengan kebijakan jaringan. Misalnya, perintah berikut mencantumkan program yang berjalan pada node.

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

Untuk menjalankan perintah ini, Anda dapat menggunakan metode apa pun untuk terhubung ke node.