Konfigurasikan parameter bidang kontrol Kubernetes lanjutan - Amazon EKS

View a markdown version of this page

Konfigurasikan parameter bidang kontrol Kubernetes lanjutan - Amazon EKS

Bantu meningkatkan halaman ini

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

Untuk berkontribusi pada panduan pengguna ini, pilih GitHub tautan Edit halaman ini di yang terletak di panel kanan setiap halaman.

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

Konfigurasikan parameter bidang kontrol Kubernetes lanjutan

Panduan ini memandu Anda melalui pengaturan dan tampilan parameter bidang kontrol Kubernetes lanjutan menggunakan CLI dan. AWS Konsol Manajemen AWS Untuk penjelasan tentang setiap parameter dan pengaruhnya terhadap cluster Anda, lihatKonfigurasi bidang kontrol Kubernetes lanjutan.

Prasyarat

Sebelum memulai, pastikan Anda memiliki:

  • Cluster Amazon EKS yang menjalankan Kubernetes versi 1.31 atau yang lebih baru — Konfigurasi bidang kontrol Kubernetes lanjutan didukung pada cluster baru dan yang sudah ada yang menjalankan Kubernetes versi 1.31 atau yang lebih baru. Semua parameter dalam topik ini berbagi versi minimum ini.

  • AWS CLI — Alat baris perintah untuk bekerja dengan AWS layanan, termasuk Amazon EKS. Untuk informasi selengkapnya, lihat Menginstal di Panduan AWS Pengguna Antarmuka Baris Perintah. Setelah menginstal AWS CLI, kami sarankan Anda juga mengkonfigurasinya. Untuk informasi selengkapnya, lihat Konfigurasi cepat dengan aws configure di Panduan Pengguna AWS Antarmuka Baris Perintah.

  • Izin IAM yang diperlukan — Prinsip IAM yang Anda gunakan harus memiliki izin untuk menjelaskan dan memperbarui cluster Amazon EKS. Untuk memeriksa prinsip saat ini, jalankan perintah berikut:

    aws sts get-caller-identity
catatan

Kami menyarankan Anda menyelesaikan langkah-langkah dalam topik ini di shell Bash. Jika Anda tidak menggunakan shell Bash, beberapa perintah skrip seperti karakter kelanjutan baris dan cara variabel diatur dan digunakan memerlukan penyesuaian untuk shell Anda. Selain itu, aturan kutipan dan pelarian untuk shell Anda mungkin berbeda. Untuk informasi selengkapnya, lihat Menggunakan tanda kutip dengan string di AWS CLI di Panduan Pengguna Antar AWS muka Baris Perintah.

Tetapkan nama dan wilayah cluster pilihan Anda sebelum menjalankan perintah dalam topik ini:

export CLUSTER=my-eks-cluster export AWS_REGION=us-west-2

Nilai yang didukung

Amazon EKS memvalidasi setiap parameter terhadap rentang berikut dan menolak permintaan di luarnya.

Parameter komponen Nilai yang didukung Default

kubeSchedulerConfig.nodeResourcesFit.scoringStrategy.type

LeastAllocated, MostAllocated

LeastAllocated

kubeSchedulerConfig.nodeResourcesFit.scoringStrategy.resources[].weight

1 untuk 100

cpu: 1, memory: 1

kubeControllerManagerConfig.horizontalPodAutoscalerControllerConfig.horizontalPodAutoscalerSyncPeriod

10s untuk 15s

15s

kubeControllerManagerConfig.podGcControllerConfig.terminatedPodGcThreshold

10000 untuk 12500

12500

kubeApiServerConfig.eventTtl

10m untuk 60m

60m

kubeApiServerConfig.serviceNodePortRange.minPort

10260 untuk 32767

30000

kubeApiServerConfig.serviceNodePortRange.maxPort

10260 untuk 32767

32767

Nilai-nilai ini berlaku untuk versi Kubernetes yang tersedia saat publikasi dan dapat berubah di versi yang lebih baru. Untuk mengambil nilai saat ini untuk versi tertentu, lihat bagian berikut.

Temukan nilai default dan didukung untuk versi Kubernetes

DescribeClusterVersionsOperasi melaporkan nilai default dan nilai yang didukung untuk setiap parameter bidang kontrol, untuk setiap versi Kubernetes. Baca nilai dari operasi ini daripada melakukan hardcoding, terutama jika Anda mengotomatiskan konfigurasi cluster atau mengelola cluster di beberapa versi Kubernetes.

aws eks describe-cluster-versions --cluster-versions 1.35

Respons mencakup controlPlaneComponentConfig objek, diatur oleh komponen bidang kontrol. Setiap parameter melaporkan defaultValue a dan constraints objek:

{ "clusterVersions": [ { "clusterVersion": "1.35", "clusterType": "eks", "defaultVersion": false, "releaseDate": "2026-01-23T00:00:00+00:00", "endOfStandardSupportDate": "2027-03-23T00:00:00+00:00", "endOfExtendedSupportDate": "2028-03-23T00:00:00+00:00", "status": "STANDARD_SUPPORT", "controlPlaneScalingTiers": [ { "tierName": "tier-xl", "apiRequestConcurrency": 2000, "podSchedulingRatePerSecond": 167, "clusterDatabaseSizeGb": 16 }, { "tierName": "tier-2xl", "apiRequestConcurrency": 4000, "podSchedulingRatePerSecond": 283, "clusterDatabaseSizeGb": 16 }, { "tierName": "tier-4xl", "apiRequestConcurrency": 8000, "podSchedulingRatePerSecond": 400, "clusterDatabaseSizeGb": 16 }, { "tierName": "tier-8xl", "apiRequestConcurrency": 16000, "podSchedulingRatePerSecond": 400, "clusterDatabaseSizeGb": 16 } ], "controlPlaneComponentConfig": { "kubeApiServerConfig": { "eventTtl": { "defaultValue": "60m", "constraints": { "min": "10m", "max": "60m" } }, "serviceNodePortRange": { "defaultValue": { "minPort": 30000, "maxPort": 32767 }, "constraints": { "minPort": {"min": 10260, "max": 32767}, "maxPort": {"min": 10260, "max": 32767} } } }, "kubeSchedulerConfig": { "nodeResourcesFit": { "scoringStrategy": { "defaultValue": { "type": "LeastAllocated", "resources": [ {"name": "cpu", "weight": 1}, {"name": "memory", "weight": 1} ] }, "constraints": { "scoringStrategy": { "allowedValues": ["LeastAllocated", "MostAllocated"] }, "resources": { "name": { "allowedValues": [ "cpu", "memory", "nvidia.com/gpu", "aws.amazon.com/neuron", "aws.amazon.com/neuroncore" ] }, "weight": {"min": 1, "max": 100} } } } } }, "kubeControllerManagerConfig": { "horizontalPodAutoscalerControllerConfig": { "horizontalPodAutoscalerSyncPeriod": { "defaultValue": "15s", "constraints": { "min": "10s", "max": "15s" } } }, "podGcControllerConfig": { "terminatedPodGcThreshold": { "defaultValue": 12500, "constraints": { "min": 10000, "max": 12500 } } } } } } ] }

Respons sebelumnya menunjukkan tanggal dukungan versi, tingkatan penskalaan Pesawat Kontrol Tersediakan, dan bidang konfigurasi bidang kontrol. Untuk informasi selengkapnya, lihat DescribeClusterVersions di Referensi API Amazon EKS.

Untuk mengembalikan hanya bidang konfigurasi, gunakan --query opsi:

aws eks describe-cluster-versions --cluster-versions 1.35 \ --query 'clusterVersions[0].controlPlaneComponentConfig'

Konfigurasi bidang kontrol — AWS CLI

Setiap komponen bidang kontrol memiliki parameternya sendiri:--kube-scheduler-config,--kube-controller-manager-config, dan--kube-api-server-config. Anda hanya menentukan komponen yang ingin Anda sesuaikan. Setiap parameter menerima JSON sebaris.

Buat cluster dengan parameter bidang kontrol

Perintah berikut membuat cluster yang mempertahankan peristiwa Kubernetes baru selama 10 menit, bukan 60 menit default. Parameter yang tidak Anda tentukan menggunakan nilai defaultnya.

aws eks create-cluster \ --name "$CLUSTER" \ --kubernetes-version 1.35 \ --role-arn arn:aws:iam::111122223333:role/eks-service-role \ --resources-vpc-config subnetIds=subnet-abc123,subnet-def456,securityGroupIds=sg-xyz789 \ --kube-api-server-config '{ "eventTtl": "10m" }'

Respons:

{ "cluster": { "name": "my-eks-cluster", "arn": "arn:aws:eks:us-west-2:111122223333:cluster/my-eks-cluster", "createdAt": 1709640000.0, "version": "1.35", "roleArn": "arn:aws:iam::111122223333:role/eks-service-role", "status": "CREATING", "kubeSchedulerConfig": { "nodeResourcesFit": { "scoringStrategy": { "type": "LeastAllocated" } } }, "kubeControllerManagerConfig": { "horizontalPodAutoscalerControllerConfig": { "horizontalPodAutoscalerSyncPeriod": "15s" } }, "kubeApiServerConfig": { "eventTtl": "10m", "serviceNodePortRange": { "minPort": 30000, "maxPort": 32767 } } } }

Melihat konfigurasi bidang kontrol untuk cluster

aws eks describe-cluster --name "$CLUSTER"

Tanggapan termasukkubeSchedulerConfig,kubeControllerManagerConfig, dan kubeApiServerConfig sebagai bidang tingkat atas. Bidang-bidang ini selalu ada dan menunjukkan konfigurasi lengkap yang berjalan di bidang kontrol Anda, termasuk parameter yang belum Anda sesuaikan dan nilai defaultnya.

Untuk mengembalikan konfigurasi untuk satu komponen, gunakan --query opsi:

aws eks describe-cluster --name "$CLUSTER" \ --query 'cluster.kubeSchedulerConfig'

Respons:

{ "nodeResourcesFit": { "scoringStrategy": { "type": "LeastAllocated" } } }

Konfigurasikan strategi penilaian penjadwal

Secara default, penjadwal menggunakan LeastAllocated strategi, yang menyebarkan pod di seluruh node. Perintah berikut mengubahnya menjadiMostAllocated, yang lebih memilih node yang sudah memiliki alokasi sumber daya yang lebih tinggi dan mengemas pod ke node yang lebih sedikit.

aws eks update-cluster-config \ --name "$CLUSTER" \ --kube-scheduler-config '{ "nodeResourcesFit": { "scoringStrategy": { "type": "MostAllocated" } } }'

Respons:

{ "update": { "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "status": "InProgress", "type": "ControlPlaneComponentConfigUpdate", "params": [ { "type": "kubeSchedulerConfig", "value": "{\"nodeResourcesFit\":{\"scoringStrategy\":{\"type\":\"MostAllocated\"}}}" } ], "createdAt": 1709643600.0, "errors": [] } }

Anda juga dapat menentukan resources array untuk menimbang sumber daya individu dalam perhitungan penilaian, yang berguna ketika sumber daya tertentu adalah batasan dalam cluster Anda. Untuk informasi selengkapnya, lihat Konfigurasi bidang kontrol Kubernetes lanjutan.

Parameter bidang kontrol lainnya mengikuti pola yang sama, masing-masing dengan flag komponennya sendiri: --kube-api-server-config untuk eventTtl danserviceNodePortRange, dan --kube-controller-manager-config untuk periode sinkronisasi Horizontal Pod Autoscaler. Untuk apa yang dilakukan setiap parameter dan apa yang harus dipertimbangkan sebelum mengubahnya, lihatKonfigurasi bidang kontrol Kubernetes lanjutan.

Memperbarui lebih dari satu komponen pada satu waktu

Anda dapat menentukan beberapa parameter komponen dalam satu panggilan:

aws eks update-cluster-config \ --name "$CLUSTER" \ --kube-scheduler-config '{"nodeResourcesFit":{"scoringStrategy":{"type":"MostAllocated"}}}' \ --kube-api-server-config '{"eventTtl":"30m"}'

Pembaruan bergabung dengan konfigurasi yang ada. Hanya bidang yang Anda tentukan berubah, dan bidang yang Anda hilangkan mempertahankan nilainya saat ini. Perintah sebelumnya membuat konfigurasi manajer pengontrol Anda tidak berubah.

Memantau pembaruan konfigurasi bidang kontrol

Perubahan konfigurasi tidak berlaku saat pengem update-cluster-config balian. Amazon EKS menerapkan konfigurasi baru melalui pembaruan bergulir dari bidang kontrol Anda, yang memakan waktu beberapa menit. Untuk memblokir hingga perubahan selesai:

aws eks wait cluster-active --name "$CLUSTER"

Perintah ini kembali ketika cluster mencapai ACTIVE status, biasanya dalam beberapa menit.

Untuk membuat daftar pembaruan untuk cluster Anda:

aws eks list-updates --name "$CLUSTER"

Respons:

{ "updateIds": [ "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" ] }

Untuk melihat status pembaruan tertentu:

aws eks describe-update --name "$CLUSTER" \ --update-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

Status berubah dari InProgress Successful saat pembaruan selesai, atau Failed jika terjadi kesalahan. errorsBidang menunjukkan alasan kegagalan.

Konfigurasi bidang kontrol — Konsol Manajemen AWS

Untuk mengkonfigurasi parameter bidang kontrol Kubernetes lanjutan saat Anda membuat cluster:

  1. Buka konsol Amazon EKS.

  2. Pilih Buat klaster.

  3. Di bawah Opsi konfigurasi, pilih Konfigur asi kustom.

  4. Gulir ke bawah ke Konfigurasi bidang kontrol.

  5. Pilih Aktifkan konfigurasi bidang kontrol.

  6. Tetapkan parameter yang ingin Anda konfigurasi. Parameter yang Anda biarkan tidak berubah menggunakan nilai defaultnya.

  7. Pilih opsi konfigurasi cluster lainnya sesuai kebutuhan. Pada langkah terakhir, pilih Buat cluster. Mungkin perlu beberapa menit untuk menyelesaikan pembuatan cluster.

Untuk mengkonfigurasi parameter bidang kontrol Kubernetes lanjutan pada cluster yang ada:

  1. Buka konsol Amazon EKS.

  2. Pilih cluster yang ingin Anda perbarui.

  3. Pilih tab I khtisar, lalu gulir ke bawah ke Konfigurasi bidang kontrol.

  4. Pilih Kelola, lalu pilih Aktifkan konfigurasi bidang kontrol untuk mengatur parameter yang ingin Anda ubah. Lalu pilih Simpan Perubahan.