Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Batasi lalu lintas jaringan Pod dengan Kubernetes kebijakan jaringan
Anda dapat menggunakan Kubernetes kebijakan jaringan untuk membatasi lalu lintas jaringan ke dan dari Pods. Untuk informasi selengkapnya, lihat Kebijakan Jaringan
Anda harus mengkonfigurasi berikut ini untuk menggunakan fitur ini:
-
Menyiapkan penegakan kebijakan di Pod startup. Anda melakukan ini dalam
aws-node
wadah VPC CNIDaemonSet
. -
Aktifkan parameter kebijakan jaringan untuk add-on.
-
Konfigurasikan cluster Anda untuk menggunakan Kubernetes kebijakan jaringan
Sebelum Anda mulai, tinjau pertimbangannya. Untuk informasi selengkapnya, lihat Pertimbangan.
Prasyarat
Berikut ini adalah prasyarat untuk fitur ini:
*. Versi cluster Minimum EKS Cluster Amazon yang ada. Untuk menyebarkan satu, lihatMemulai dengan Amazon EKS. Cluster harus Kubernetes versi 1.25
atau yang lebih baru. Cluster harus menjalankan salah satu Kubernetes versi dan versi platform yang tercantum dalam tabel berikut. Perhatikan bahwa setiap Kubernetes dan versi platform yang lebih lambat dari yang terdaftar juga didukung. Anda dapat memeriksa saat ini Kubernetes versi dengan mengganti my-cluster
dalam perintah berikut dengan nama cluster Anda dan kemudian menjalankan perintah yang dimodifikasi:
+
aws eks describe-cluster --name my-cluster --query cluster.version --output text
+
Versi Kubernetes | Versi platform |
---|---|
|
|
|
|
|
|
*. VPC CNI Versi Minimum versi 1.14
atau yang lebih baru Amazon VPC CNI plugin for Kubernetes di cluster Anda. Anda dapat melihat versi mana yang saat ini Anda miliki dengan perintah berikut.
+
kubectl describe daemonset aws-node --namespace kube-system | grep amazon-k8s-cni: | cut -d : -f 3
+ Jika versi Anda lebih awal dari1.14
, lihat Memperbarui Amazon VPC CNI (EKSadd-on Amazon) untuk meningkatkan ke versi 1.14
atau yang lebih baru. *. Minimum versi kernel Linux Node Anda harus memiliki versi kernel Linux 5.10
atau yang lebih baru. Anda dapat memeriksa versi kernel Anda denganuname -r
. Jika Anda menggunakan versi terbaru dari Amazon yang EKS dioptimalkan Amazon Linux, Amazon EKS mengoptimalkan Amazon Linux yang dipercepatAMIs, dan BottlerocketAMIs, mereka sudah memiliki versi kernel yang diperlukan.
+ Amazon EKS mengoptimalkan AMI versi Amazon Linux yang dipercepat v20231116
atau yang lebih baru memiliki versi kernel5.10
.
Langkah 1: Siapkan penegakan kebijakan di Pod perusahaan rintisan
Bagian Amazon VPC CNI plugin for Kubernetes mengonfigurasi kebijakan jaringan untuk pod secara paralel dengan penyediaan pod. Sampai semua kebijakan dikonfigurasi untuk pod baru, container di pod baru akan dimulai dengan kebijakan allow default. Ini disebut mode standar. Kebijakan allow default berarti bahwa semua lalu lintas masuk dan keluar diizinkan ke dan dari pod baru. Misalnya, pod tidak akan memiliki aturan firewall yang diberlakukan (semua lalu lintas diizinkan) sampai pod baru diperbarui dengan kebijakan aktif.
Dengan NETWORK_POLICY_ENFORCING_MODE
variabel disetel kestrict
, pod yang menggunakan VPC CNI start dengan kebijakan penolakan default, kemudian kebijakan dikonfigurasi. Ini disebut mode ketat. Dalam mode ketat, Anda harus memiliki kebijakan jaringan untuk setiap titik akhir yang perlu diakses pod di klaster Anda. Perhatikan bahwa persyaratan ini berlaku untuk CoreDNS polong. Kebijakan penolakan default tidak dikonfigurasi untuk pod dengan jaringan Host.
Anda dapat mengubah kebijakan jaringan default dengan menyetel variabel lingkungan NETWORK_POLICY_ENFORCING_MODE
ke strict
dalam aws-node
wadah VPC CNIDaemonSet
.
env: - name: NETWORK_POLICY_ENFORCING_MODE value: "strict"
Langkah 2: Aktifkan parameter kebijakan jaringan untuk add-on
Fitur kebijakan jaringan menggunakan port 8162
pada node untuk metrik secara default. Juga, fitur yang digunakan port 8163
untuk probe kesehatan. Jika Anda menjalankan aplikasi lain di node atau di dalam pod yang perlu menggunakan port ini, aplikasi gagal dijalankan. Dalam VPC CNI versi v1.14.1
atau yang lebih baru, Anda dapat mengubah port ini.
Gunakan prosedur berikut untuk mengaktifkan parameter kebijakan jaringan untuk add-on.
- AWS Management Console
-
-
Buka EKSkonsol Amazon
. -
Di panel navigasi kiri, pilih Cluster, lalu pilih nama cluster yang ingin Anda konfigurasikan VPC CNI add-on Amazon.
-
Pilih tab Add-ons.
-
Pilih kotak di kanan atas kotak add-on dan kemudian pilih Edit.
-
Pada Konfigurasi
name of add-on
halaman:-
Pilih versi
v1.14.0-eksbuild.3
atau versi yang lebih baru dalam daftar Versi. -
Perluas pengaturan konfigurasi opsional.
-
Masukkan JSON kunci
"enableNetworkPolicy":
dan nilai"true"
dalam nilai Konfigurasi. Teks yang dihasilkan harus berupa JSON objek yang valid. Jika kunci dan nilai ini adalah satu-satunya data dalam kotak teks, kelilingi kunci dan nilai dengan kurawal kurawal.{ }
Contoh berikut mengaktifkan fitur kebijakan jaringan dan metrik serta probe kesehatan disetel ke nomor port default:
{ "enableNetworkPolicy": "true", "nodeAgent": { "healthProbeBindAddr": "8163", "metricsBindAddr": "8162" } }
-
-
- Helm
-
Jika Anda telah menginstal Amazon VPC CNI plugin for Kubernetes melalui
helm
, Anda dapat memperbarui konfigurasi untuk mengubah port.-
Jalankan perintah berikut untuk mengubah port. Tetapkan nomor port dalam nilai untuk kunci
nodeAgent.metricsBindAddr
atau kuncinodeAgent.healthProbeBindAddr
, masing-masing.helm upgrade --set nodeAgent.metricsBindAddr=8162 --set nodeAgent.healthProbeBindAddr=8163 aws-vpc-cni --namespace kube-system eks/aws-vpc-cni
-
- kubectl
-
-
Buka
aws-node
DaemonSet
di editor Anda.kubectl edit daemonset -n kube-system aws-node
-
Ganti nomor port dalam argumen perintah berikut di dalam
aws-network-policy-agent
wadahargs:
dalam manifes VPC CNIaws-node
daemonset.- args: - --metrics-bind-addr=:8162 - --health-probe-bind-addr=:8163
-
Langkah 3: Pasang sistem file Berkeley Packet Filter (BPF) pada node Anda
Anda harus me-mount sistem file Berkeley Packet Filter (BPF) pada setiap node Anda.
catatan
Jika cluster Anda versi 1.27
atau yang lebih baru, Anda dapat melewati langkah ini karena semua Amazon EKS mengoptimalkan Amazon Linux dan Bottlerocket AMIs untuk 1.27
atau yang lebih baru sudah memiliki fitur ini.
Untuk semua versi cluster lainnya, jika Anda memutakhirkan Amazon yang EKS dioptimalkan Amazon Linux ke versi v20230703
atau yang lebih baru atau Anda memutakhirkan Bottlerocket AMI ke versi v1.0.2
atau yang lebih baru, Anda dapat melewati langkah ini.
-
Pasang sistem file Berkeley Packet Filter (BPF) pada setiap node Anda.
sudo mount -t bpf bpffs /sys/fs/bpf
-
Kemudian, tambahkan perintah yang sama ke data pengguna Anda di template peluncuran untuk Grup EC2 Auto Scaling Amazon Anda.
Langkah 4: Konfigurasikan cluster Anda untuk digunakan Kubernetes kebijakan jaringan
Konfigurasikan cluster yang akan digunakan Kubernetes kebijakan jaringan. Anda dapat mengatur ini untuk EKS add-on Amazon atau add-on yang dikelola sendiri.
- AWS Management Console
-
-
Buka EKSkonsol Amazon
. -
Di panel navigasi kiri, pilih Cluster, lalu pilih nama cluster yang ingin Anda konfigurasikan VPC CNI add-on Amazon.
-
Pilih tab Add-ons.
-
Pilih kotak di kanan atas kotak add-on dan kemudian pilih Edit.
-
Pada Konfigurasi
name of addon
halaman:-
Pilih versi
v1.14.0-eksbuild.3
atau versi yang lebih baru dalam daftar Versi. -
Perluas pengaturan konfigurasi opsional.
-
Masukkan JSON kunci
"enableNetworkPolicy":
dan nilai"true"
dalam nilai Konfigurasi. Teks yang dihasilkan harus berupa JSON objek yang valid. Jika kunci dan nilai ini adalah satu-satunya data dalam kotak teks, kelilingi kunci dan nilai dengan kurawal kurawal.{ }
Contoh berikut menunjukkan kebijakan jaringan diaktifkan:{ "enableNetworkPolicy": "true" }
Screenshot berikut menunjukkan contoh skenario ini.
-
-
- AWS CLI
-
-
Jalankan AWS CLI perintah berikut. Ganti
my-cluster
dengan nama cluster Anda dan 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 '{"enableNetworkPolicy": "true"}'
-
- Helm
-
Jika Anda telah menginstal Amazon VPC CNI plugin for Kubernetes melalui
helm
, Anda dapat memperbarui konfigurasi untuk mengaktifkan kebijakan jaringan.-
Jalankan perintah berikut untuk mengaktifkan kebijakan jaringan.
helm upgrade --set enableNetworkPolicy=true aws-vpc-cni --namespace kube-system eks/aws-vpc-cni
-
- kubectl
-
-
Buka
amazon-vpc-cni
ConfigMap
di editor Anda.kubectl edit configmap -n kube-system amazon-vpc-cni -o yaml
-
Tambahkan baris berikut ke
data
dalamConfigMap
.enable-network-policy-controller: "true"
Setelah Anda menambahkan baris, Anda
ConfigMap
akan terlihat seperti contoh berikut.apiVersion: v1 kind: ConfigMap metadata: name: amazon-vpc-cni namespace: kube-system data: enable-network-policy-controller: "true"
-
Buka
aws-node
DaemonSet
di editor Anda.kubectl edit daemonset -n kube-system aws-node
-
Ganti
false
dengantrue
dalam argumen perintah--enable-network-policy=false
di dalamaws-network-policy-agent
wadahargs:
dalam manifes VPC CNIaws-node
daemonset.- args: - --enable-network-policy=true
-
Langkah 5. Langkah selanjutnya
Setelah Anda menyelesaikan konfigurasi, konfirmasikan bahwa aws-node
pod berjalan di klaster Anda.
kubectl get pods -n kube-system | grep 'aws-node\|amazon'
Contoh output adalah sebagai berikut.
aws-node-gmqp7 2/2 Running 1 (24h ago) 24h aws-node-prnsh 2/2 Running 1 (24h ago) 24h
Ada 2 kontainer di aws-node
pod dalam versi 1.14
dan yang lebih baru. Di versi sebelumnya dan jika kebijakan jaringan dinonaktifkan, hanya ada satu kontainer di aws-node
pod.
Anda sekarang dapat menyebarkan Kubernetes kebijakan jaringan ke cluster Anda.
Untuk mengimplementasikan Kubernetes kebijakan jaringan yang Anda buat Kubernetes NetworkPolicy
objek dan menyebarkan mereka ke cluster Anda. NetworkPolicy
objek dicakup ke namespace. Anda menerapkan kebijakan untuk mengizinkan atau menolak lalu lintas antara Pods berdasarkan pemilih label, ruang nama, dan rentang alamat IP. Untuk informasi selengkapnya tentang membuat NetworkPolicy
objek, lihat Kebijakan Jaringan
Penegakan Kubernetes NetworkPolicy
objek diimplementasikan menggunakan Extended Berkeley Packet Filter (eBPF). Sehubungan dengan implementasi iptables
berbasis, ia menawarkan latensi dan karakteristik kinerja yang lebih rendah, termasuk pengurangan CPU pemanfaatan dan menghindari pencarian berurutan. Selain itu, eBPF probe menyediakan akses ke data kaya konteks yang membantu men-debug masalah tingkat kernel yang kompleks dan meningkatkan observabilitas. Amazon EKS mendukung eBPFeksportir berbasis yang memanfaatkan probe untuk mencatat hasil kebijakan pada setiap node dan mengekspor data ke pengumpul log eksternal untuk membantu debugging. Untuk informasi lebih lanjut, lihat BPFdokumentasi e