Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tingkatkan alamat IP yang tersedia untuk EKS node Amazon Anda
Anda dapat meningkatkan jumlah alamat IP yang dapat ditetapkan oleh node Pods dengan menetapkan awalan IP, daripada menetapkan alamat IP sekunder individual ke node Anda.
Selesaikan yang berikut ini sebelum Anda memulai prosedur:
-
Tinjau pertimbangannya.
-
Anda membutuhkan cluster yang ada. Untuk menyebarkan satu, lihatBuat EKS klaster Amazon.
-
Subnet tempat EKS node Amazon Anda berada harus memiliki blok yang cukup berdekatan
/28
(untukIPv4
cluster) atau (untuk cluster) Classless Inter-DomainIPv6
Routing/80
(). CIDR Anda hanya dapat memiliki node Linux dalam sebuahIPv6
cluster. Menggunakan awalan IP dapat gagal jika alamat IP tersebar di seluruh subnet. CIDR Kami merekomendasikan bahwa berikut:-
Menggunakan CIDR reservasi subnet sehingga meskipun alamat IP apa pun dalam rentang cadangan masih digunakan, setelah dirilis, alamat IP tidak dipindahkan. Ini memastikan bahwa awalan tersedia untuk alokasi tanpa segmentasi.
-
Gunakan subnet baru yang secara khusus digunakan untuk menjalankan beban kerja yang awalan IP ditetapkan. Keduanya Windows and Linux beban kerja dapat berjalan di subnet yang sama saat menetapkan awalan IP.
-
-
Untuk menetapkan awalan IP ke node Anda, node Anda harus berbasis Nitro. AWS Instans yang tidak berbasis Nitro terus mengalokasikan alamat IP sekunder individual, tetapi memiliki jumlah alamat IP yang jauh lebih rendah untuk ditetapkan Pods daripada Nitro-based contoh lakukan.
-
Untuk cluster dengan Linux node saja — Jika klaster Anda dikonfigurasi untuk
IPv4
keluarga, Anda harus memiliki versi1.9.0
atau yang lebih baru Amazon VPC CNI plugin for Kubernetes add-on diinstal. Anda dapat memeriksa versi Anda saat ini dengan perintah berikut.kubectl describe daemonset aws-node --namespace kube-system | grep Image | cut -d "/" -f 2
Jika cluster Anda dikonfigurasi untuk
IPv6
keluarga, Anda harus menginstal1.10.1
versi add-on. Jika versi plugin Anda lebih awal dari versi yang diperlukan, Anda harus memperbaruinya. Untuk informasi selengkapnya, lihat bagian pembaruan dari Menetapkan IPs ke Pod dengan Amazon VPC CNI. -
Untuk cluster dengan Windows node saja::
-
Cluster Anda dan versi platformnya harus di, atau lebih lambat dari versi dalam tabel berikut. Untuk memutakhirkan versi cluster Anda, lihatPerbarui klaster yang ada ke versi Kubernetes baru. Jika klaster Anda tidak pada versi platform minimum, maka Anda tidak dapat menetapkan awalan IP ke node Anda hingga Amazon EKS memperbarui versi platform Anda.
Versi Kubernetes Versi platform 1.27
eks.3
1.26
eks.4
1.25
eks.5
Anda dapat memeriksa saat ini Kubernetes dan versi platform 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.{"Kubernetes Version": version, "Platform Version": platformVersion}' -
Windows dukungan diaktifkan untuk cluster Anda. Untuk informasi selengkapnya, lihat Menyebarkan node Windows pada cluster EKS.
-
Konfigurasikan cluster Anda untuk menetapkan awalan alamat IP ke node. Selesaikan prosedur pada tab yang cocok dengan sistem operasi node Anda.
- Linux
-
-
Aktifkan parameter untuk menetapkan awalan ke antarmuka jaringan untuk Amazon VPC CNI DaemonSet. Saat Anda menerapkan klaster, versi,
1.10.1
atau versi yang lebih baru1.21
Amazon VPC CNI plugin for Kubernetes add-on digunakan dengannya. Jika Anda membuat cluster denganIPv6
keluarga, pengaturan ini disetel ke secaratrue
default. Jika Anda membuat cluster denganIPv4
keluarga, pengaturan ini disetel ke secarafalse
default.kubectl set env daemonset aws-node -n kube-system ENABLE_PREFIX_DELEGATION=true
penting
Bahkan jika subnet Anda memiliki alamat IP yang tersedia, jika subnet tidak memiliki
/28
blok bersebelahan yang tersedia, Anda akan melihat kesalahan berikut di Amazon VPC CNI plugin for Kubernetes log.
-
-
-
InsufficientCidrBlocks: The specified subnet does not have enough free cidr blocks to satisfy the request
Hal ini dapat terjadi karena fragmentasi alamat IP sekunder yang ada tersebar di subnet. Untuk mengatasi kesalahan ini, buat subnet baru dan luncurkan Pods di sana, atau gunakan CIDR reservasi EC2 subnet Amazon untuk memesan ruang dalam subnet untuk digunakan dengan penetapan awalan. Untuk informasi selengkapnya, lihat CIDRReservasi subnet di VPC Panduan Pengguna Amazon. ... Jika Anda berencana untuk menerapkan grup node terkelola tanpa templat peluncuran, atau dengan templat peluncuran yang belum Anda tentukan AMI ID, dan Anda menggunakan versi Amazon VPC CNI plugin for Kubernetes pada atau lebih lambat dari versi yang tercantum dalam prasyarat, lalu lompat ke langkah berikutnya. Grup node terkelola secara otomatis menghitung jumlah maksimum Pods untuk Anda.
+ Jika Anda menerapkan grup node yang dikelola sendiri atau grup node terkelola dengan templat peluncuran yang telah Anda tentukan AMI ID, maka Anda harus menentukan jumlah maksimum yang EKS disarankan Amazon Pods untuk node Anda. Ikuti petunjuk di Pod maksimum yang EKS direkomendasikan Amazon untuk setiap jenis EC2 instans Amazon, tambahkan --cni-prefix-delegation-enabled
ke langkah 3. Perhatikan output untuk digunakan di langkah selanjutnya.
+IMPORTANT: Grup node terkelola memberlakukan jumlah maksimum pada nilai. maxPods
Untuk contoh dengan kurang dari 30 vCPUs jumlah maksimum adalah 110 dan untuk semua contoh lainnya jumlah maksimum adalah 250. Jumlah maksimum ini diterapkan apakah delegasi awalan diaktifkan atau tidak. ... Jika Anda menggunakan cluster 1.21
atau yang lebih baru yang dikonfigurasiIPv6
, lewati ke langkah berikutnya.
+ Tentukan parameter di salah satu opsi berikut. Untuk menentukan opsi mana yang tepat untuk Anda dan nilai apa yang akan diberikan untuknya, lihat WARM_ _, PREFIX _IP_ TARGETTARGET, dan WARM MINIMUM _IP_
+ Anda dapat mengganti example values
dengan nilai lebih besar dari nol.
+
** WARM_PREFIX_TARGET
+
kubectl set env ds aws-node -n kube-system WARM_PREFIX_TARGET=1
-
WARM_IP_TARGET
atauMINIMUM_IP_TARGET
— Jika salah satu nilai ditetapkan, itu akan menggantikan nilai yang ditetapkan untuk.WARM_PREFIX_TARGET
kubectl set env ds aws-node -n kube-system WARM_IP_TARGET=5
kubectl set env ds aws-node -n kube-system MINIMUM_IP_TARGET=2
-
Buat salah satu jenis grup node berikut dengan setidaknya satu jenis instans Amazon EC2 Nitro Amazon Linux 2. Untuk daftar jenis instans Nitro, lihat Instans yang dibangun di Sistem Nitro di Panduan Pengguna AmazonEC2. Kemampuan ini tidak didukung pada Windows. Untuk opsi yang mencakup
110
, ganti dengan nilai dari langkah 3 (disarankan), atau nilai Anda sendiri.-
Dikelola sendiri — Menerapkan grup node menggunakan instruksi di Buat node Amazon Linux yang dikelola sendiri. Tentukan teks berikut untuk BootstrapArgumentsparameter.
--use-max-pods false --kubelet-extra-args '--max-pods=110'
Jika Anda menggunakan
eksctl
untuk membuat grup node, Anda dapat menggunakan perintah berikut.eksctl create nodegroup --cluster my-cluster --managed=false --max-pods-per-node 110
-
Dikelola - Terapkan grup node Anda menggunakan salah satu opsi berikut:
-
Tanpa template peluncuran atau dengan template peluncuran tanpa AMI ID yang ditentukan — Selesaikan prosedur di Buat grup node terkelola untuk klaster Anda. Grup node terkelola secara otomatis menghitung
max-pods
nilai yang EKS direkomendasikan Amazon untuk Anda. -
Dengan template peluncuran dengan AMI ID tertentu — Di template peluncuran Anda, tentukan AMI ID yang EKS dioptimalkan Amazon, atau kustom yang AMI dibuat dari Amazon yang EKS dioptimalkanAMI, lalu terapkan grup node menggunakan templat peluncuran dan berikan data pengguna berikut di template peluncuran. Data pengguna ini meneruskan argumen ke dalam
bootstrap.sh
file. Untuk informasi lebih lanjut tentang file bootstrap, lihat bootstrap.shdi GitHub. /etc/eks/bootstrap.sh my-cluster \ --use-max-pods false \ --kubelet-extra-args '--max-pods=110'
Jika Anda menggunakan
eksctl
untuk membuat grup node, Anda dapat menggunakan perintah berikut.eksctl create nodegroup --cluster my-cluster --max-pods-per-node 110
Jika Anda telah membuat kustom AMI yang tidak dibangun dari Amazon yang EKS dioptimalkanAMI, maka Anda perlu membuat konfigurasi sendiri.
catatan
Jika Anda juga ingin menetapkan alamat IP ke Pods dari subnet yang berbeda dari instance, maka Anda perlu mengaktifkan kemampuan pada langkah ini. Untuk informasi selengkapnya, lihat Deploy pods dalam subnet alternatif dengan jaringan khusus.
- Windows
-
-
-
Aktifkan penugasan awalan IP.
-
Buka
amazon-vpc-cni
ConfigMap
untuk mengedit.kubectl edit configmap -n kube-system amazon-vpc-cni -o yaml
-
Tambahkan baris berikut ke
data
bagian.enable-windows-prefix-delegation: "true"
-
Simpan file dan tutup editor.
-
Konfirmasikan bahwa baris telah ditambahkan ke
ConfigMap
.kubectl get configmap -n kube-system amazon-vpc-cni -o "jsonpath={.data.enable-windows-prefix-delegation}"
Jika output yang dikembalikan tidak
true
, maka mungkin ada kesalahan. Coba selesaikan langkahnya lagi.penting
Bahkan jika subnet Anda memiliki alamat IP yang tersedia, jika subnet tidak memiliki
/28
blok bersebelahan yang tersedia, Anda akan melihat kesalahan berikut dalam peristiwa node.
-
"failed to allocate a private IP/Prefix address: InsufficientCidrBlocks: The specified subnet does not have enough free cidr blocks to satisfy the request"
Hal ini dapat terjadi karena fragmentasi alamat IP sekunder yang ada tersebar di subnet. Untuk mengatasi kesalahan ini, buat subnet baru dan luncurkan Pods di sana, atau gunakan CIDR reservasi EC2 subnet Amazon untuk memesan ruang dalam subnet untuk digunakan dengan penetapan awalan. Untuk informasi selengkapnya, lihat CIDRReservasi subnet di VPC Panduan Pengguna Amazon. ... (Opsional) Tentukan konfigurasi tambahan untuk mengontrol perilaku pra-penskalaan dan penskalaan dinamis untuk klaster Anda. Untuk informasi selengkapnya, lihat Opsi konfigurasi dengan mode Delegasi Awalan di Windows
+.... Buka amazon-vpc-cni
ConfigMap
untuk mengedit.
+
kubectl edit configmap -n kube-system amazon-vpc-cni -o yaml
-
Ganti
example values
dengan nilai lebih besar dari nol dan tambahkan entri yang Anda butuhkan kedata
bagianConfigMap
. Jika Anda menetapkan nilai untuk salah satuwarm-ip-target
atauminimum-ip-target
, nilai akan menggantikan nilai yang ditetapkan untuk.warm-prefix-target
warm-prefix-target: "1" warm-ip-target: "5" minimum-ip-target: "2"
-
Simpan file dan tutup editor.
-
Buat Windows grup node dengan setidaknya satu Amazon EC2 Nitro jenis contoh. Untuk daftar Nitro jenis instans, lihat Instans yang dibangun di Sistem Nitro di EC2 Panduan Pengguna Amazon. Secara default, jumlah maksimum Pods yang dapat Anda terapkan ke node adalah 110. Jika Anda ingin menambah atau mengurangi angka itu, tentukan yang berikut ini dalam data pengguna untuk konfigurasi bootstrap. Ganti
max-pods-quantity
dengan nilai pod maks Anda.-KubeletExtraArgs '--max-pods=max-pods-quantity'
Jika Anda menerapkan grup node terkelola, konfigurasi ini perlu ditambahkan dalam template peluncuran. Untuk informasi selengkapnya, lihat Sesuaikan node terkelola dengan templat peluncuran. Untuk informasi lebih lanjut tentang parameter konfigurasi untuk Windows skrip bootstrap, lihatParameter konfigurasi skrip bootstrap. Setelah node Anda di-deploy, lihat node di cluster Anda.
+
kubectl get nodes
+ Contoh output adalah sebagai berikut.
+
NAME STATUS ROLES AGE VERSION ip-192-168-22-103.region-code.compute.internal Ready <none> 19m v1.XX.X-eks-6b7464 ip-192-168-97-94.region-code.compute.internal Ready <none> 19m v1.XX.X-eks-6b7464
-
Jelaskan salah satu node untuk menentukan nilai
max-pods
untuk node dan jumlah alamat IP yang tersedia. Ganti192.168.30.193
denganIPv4
alamat atas nama salah satu node Anda dikembalikan pada output sebelumnya.kubectl describe node ip-192-168-30-193.region-code.compute.internal | grep 'pods\|PrivateIPv4Address'
Contoh output adalah sebagai berikut.
pods: 110 vpc.amazonaws.com/PrivateIPv4Address: 144
Pada output sebelumnya,
110
adalah jumlah maksimum Pods itu Kubernetes akan menyebar ke node, meskipun144
Alamat IP tersedia.
-
-