Bantu tingkatkan 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 Edit halaman ini pada GitHub tautan 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.
Buat node Amazon Linux yang dikelola sendiri
Topik ini menjelaskan bagaimana Anda dapat meluncurkan grup Auto Scaling dari node Linux yang mendaftar dengan kluster Amazon EKS Anda. Setelah simpul bergabung dengan klaster, Anda dapat men-deploy aplikasi Kubernetes pada mereka. Anda juga dapat meluncurkan node Amazon Linux yang dikelola sendiri dengan eksctl atau. Konsol Manajemen AWS Jika Anda perlu meluncurkan node di AWS Outposts, lihat. Buat node Amazon Linux di AWS Outposts
-
Sebuah klaster Amazon EKS yang sudah ada. Untuk menyebarkan satu, lihatBuat kluster Amazon EKS. Jika Anda memiliki subnet di AWS Wilayah tempat Anda mengaktifkan AWS Outposts, AWS Wavelength, atau AWS Local Zones, subnet tersebut tidak boleh diteruskan saat Anda membuat klaster.
-
Peran IAM yang ada untuk digunakan node. Untuk membuatnya, lihat IAM role simpul Amazon EKS. Jika peran ini tidak memiliki salah satu kebijakan untuk VPC CNI, peran terpisah yang mengikuti diperlukan untuk pod VPC CNI.
-
(Opsional, tetapi disarankan) Plugin Amazon VPC CNI untuk add-on Kubernetes dikonfigurasi dengan peran IAM sendiri yang memiliki kebijakan IAM yang diperlukan yang melekat padanya. Untuk informasi selengkapnya, lihat Konfigurasikan plugin Amazon VPC CNI untuk menggunakan IRSA.
-
Keakraban dengan pertimbangan yang tercantum dalam Pilih jenis instans EC2 node Amazon yang optimal. Bergantung pada jenis instans yang Anda pilih, mungkin ada prasyarat tambahan untuk cluster dan VPC Anda.
Anda dapat meluncurkan node Linux yang dikelola sendiri menggunakan salah satu dari berikut ini:
eksctl
Luncurkan node Linux yang dikelola sendiri menggunakan eksctl
-
Instal versi
0.212.0atau yang lebih baru dari alat bariseksctlperintah yang diinstal pada perangkat Anda atau AWS CloudShell. Untuk menginstal atau memperbaruieksctl, lihat Instalasidalam eksctldokumentasi. -
(Opsional) Jika kebijakan IAM terkelola Amazoneks_CNI_Policy dilampirkan ke peran IAM node Amazon EKS Anda, kami sarankan untuk menetapkannya ke peran IAM yang Anda kaitkan ke akun layanan Kubernetes sebagai gantinya.
aws-nodeUntuk informasi selengkapnya, lihat Konfigurasikan plugin Amazon VPC CNI untuk menggunakan IRSA. -
Perintah berikutnya membuat grup simpul dalam klaster yang ada. Ganti
al-nodesdengan nama untuk grup node Anda. Nama grup node tidak boleh lebih dari 63 karakter. Itu harus dimulai dengan huruf atau digit, tetapi juga dapat menyertakan tanda hubung dan garis bawah untuk karakter yang tersisa. Gantimy-clusterdengan nama klaster Anda. Nama hanya dapat berisi karakter alfanumerik (peka huruf besar/kecil) dan tanda hubung. Itu harus dimulai dengan karakter alfanumerik dan tidak boleh lebih dari 100 karakter. Nama harus unik di dalam AWS Wilayah dan AWS akun tempat Anda membuat klaster. Ganti sisanyaexample valuedengan nilai Anda sendiri. Simpul dibuat dengan versi Kubernetes yang sama dengan bidang kendali, secara default.Sebelum memilih nilai untuk
--node-type, tinjau Pilih jenis instans EC2 node Amazon yang optimal.Ganti
my-keydengan nama Amazon EC2 key pair atau public key Anda. Kunci ini digunakan untuk SSH ke simpul Anda setelah diluncurkan. Jika Anda belum memiliki EC2 key pair Amazon, Anda dapat membuatnya di Konsol Manajemen AWS. Untuk informasi selengkapnya, lihat pasangan EC2 kunci Amazon di Panduan EC2 Pengguna Amazon.Buat grup simpul Anda dengan perintah berikut.
penting
Jika Anda ingin menyebarkan grup node ke subnet AWS Outposts, Wavelength, atau Local Zone, ada pertimbangan tambahan:
-
Subnet tidak boleh diteruskan saat Anda membuat cluster.
-
Anda harus membuat grup node dengan file konfigurasi yang menentukan subnet dan.
volumeTypeUntuk informasi selengkapnya, lihat Membuat nodegroup dari file konfigurasi dan skema: gp2 file Config dalam dokumentasi. eksctl
eksctl create nodegroup \ --cluster my-cluster \ --name al-nodes \ --node-type t3.medium \ --nodes 3 \ --nodes-min 1 \ --nodes-max 4 \ --ssh-access \ --managed=false \ --ssh-public-key my-keyUntuk menyebarkan grup simpul yang:
-
dapat menetapkan jumlah alamat IP yang jauh lebih tinggi ke Pod daripada konfigurasi default, lihatTetapkan lebih banyak alamat IP ke node Amazon EKS dengan awalan.
-
dapat menetapkan
IPv4alamat ke Pod dari blok CIDR yang berbeda dari instans, lihat. Menerapkan Pod di subnet alternatif dengan jaringan khusus -
dapat menetapkan
IPv6alamat ke Pod dan layanan, lihatPelajari tentang IPv6 alamat ke klaster, Pod, dan layanan. -
tidak memiliki akses internet keluar, lihatMenyebarkan kluster pribadi dengan akses internet terbatas.
Untuk daftar lengkap semua opsi dan default yang tersedia, masukkan perintah berikut.
eksctl create nodegroup --helpJika node gagal bergabung dengan cluster, maka lihat Simpul gagal untuk bergabung dengan klaster di chapter Troubleshooting.
Contoh output adalah sebagai berikut. Beberapa baris adalah output sementara node dibuat. Salah satu baris terakhir dari output adalah baris contoh berikutnya.
[✔] created 1 nodegroup(s) in cluster "my-cluster"
-
-
(Opsional) Deploy aplikasi sampel untuk menguji simpul klaster dan Linux Anda.
-
Sebaiknya blokir akses Pod ke IMDS jika kondisi berikut benar:
-
Anda berencana untuk menetapkan peran IAM ke semua akun layanan Kubernetes Anda sehingga Pod hanya memiliki izin minimum yang mereka butuhkan.
-
Tidak ada Pod dalam klaster yang memerlukan akses ke layanan metadata EC2 instans Amazon (IMDS) karena alasan lain, seperti mengambil Region saat ini. AWS
Untuk informasi selengkapnya, lihat Membatasi akses ke profil instance yang ditetapkan ke node pekerja
. -
Konsol Manajemen AWS
Langkah 1: Luncurkan node Linux yang dikelola sendiri menggunakan Konsol Manajemen AWS
-
Unduh versi terbaru dari AWS CloudFormation template.
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2022-12-23/amazon-eks-nodegroup.yaml -
Tunggu status klaster Anda ditampilkan sebagai
ACTIVE. Jika Anda meluncurkan node Anda sebelum cluster aktif, node gagal mendaftar dengan cluster dan Anda harus meluncurkannya kembali. -
Buka konsol AWS CloudFormation
. -
Pilih Buat tumpukan dan kemudian pilih Dengan sumber daya baru (standar).
-
Untuk Menentukan templat, pilih Unggah sebuah file templat dan kemudian pilih Pilih file.
-
Pilih
amazon-eks-nodegroup.yamlfile yang Anda unduh. -
Pilih Selanjutnya.
-
Pada halaman Tentukan detail tumpukan, masukkan parameter berikut yang sesuai, lalu pilih Berikutnya:
-
Nama tumpukan: Pilih nama tumpukan untuk AWS CloudFormation tumpukan Anda. Misalnya, Anda bisa menyebutnya
my-cluster-nodes. Nama hanya dapat berisi karakter alfanumerik (peka huruf besar/kecil) dan tanda hubung. Itu harus dimulai dengan karakter alfanumerik dan tidak boleh lebih dari 100 karakter. Nama harus unik di dalam AWS Wilayah dan AWS akun tempat Anda membuat klaster. -
ClusterName: Masukkan nama yang Anda gunakan saat membuat cluster Amazon EKS Anda. Nama ini harus sama dengan nama cluster atau node Anda tidak dapat bergabung dengan cluster.
-
ClusterControlPlaneSecurityGroup: Pilih SecurityGroupsnilai dari AWS CloudFormation output yang Anda hasilkan saat Anda membuat VPC Anda.
Langkah-langkah berikut menunjukkan satu operasi untuk mengambil grup yang berlaku.
-
Buka konsol Amazon EKS
. -
Pilih nama cluster.
-
Pilih tab Jaringan.
-
Gunakan nilai grup keamanan tambahan sebagai referensi saat memilih dari daftar ClusterControlPlaneSecurityGrouptarik-turun.
-
-
NodeGroupName: Masukkan nama untuk grup node Anda. Nama ini dapat digunakan nanti untuk mengidentifikasi grup node Auto Scaling yang dibuat untuk node Anda. Nama grup node tidak boleh lebih dari 63 karakter. Itu harus dimulai dengan huruf atau digit, tetapi juga dapat menyertakan tanda hubung dan garis bawah untuk karakter yang tersisa.
-
NodeAutoScalingGroupMinSize: Masukkan jumlah minimum node yang dapat diskalakan oleh grup Auto Scaling node Anda.
-
NodeAutoScalingGroupDesiredCapacity: Masukkan jumlah node yang diinginkan untuk diskalakan saat tumpukan Anda dibuat.
-
NodeAutoScalingGroupMaxSize: Masukkan jumlah maksimum node yang dapat diskalakan oleh grup Auto Scaling node Anda.
-
NodeInstanceType: Pilih jenis instance untuk node Anda. Untuk informasi selengkapnya, lihat Pilih jenis instans EC2 node Amazon yang optimal.
-
NodeImageIdSSMParam: Diisi sebelumnya dengan parameter Amazon EC2 Systems Manager dari Amazon EKS baru-baru ini yang dioptimalkan AMI untuk versi Kubernetes variabel. Untuk menggunakan versi minor Kubernetes berbeda yang didukung dengan Amazon EKS, ganti
1.XXdengan versi lain yang didukung. Sebaiknya tentukan versi Kubernetes yang sama dengan klaster Anda.Anda juga dapat mengganti
amazon-linux-2dengan tipe AMI yang berbeda. Untuk informasi selengkapnya, lihat Ambil AMI Amazon Linux yang direkomendasikan IDs.catatan
Node Amazon EKS AMIs didasarkan pada Amazon Linux. Anda dapat melacak peristiwa keamanan atau privasi untuk Amazon Linux 2 di Pusat Keamanan Amazon Linux
atau berlangganan ke Umpan RSS yang terkait. Kejadian keamanan dan privasi mencakup gambaran umum mengenai masalah, paket apa yang terpengaruh, dan cara memperbarui instans Anda untuk memperbaiki masalah tersebut. -
NodeImageId: (Opsional) Jika Anda menggunakan AMI kustom Anda sendiri (bukan AMI yang dioptimalkan Amazon EKS), masukkan ID AMI node untuk AWS Wilayah Anda. Jika Anda menentukan nilai di sini, itu akan mengganti nilai apa pun di bidang. NodeImageIdSSMParam
-
NodeVolumeSize: Tentukan ukuran volume root untuk node Anda, di GiB.
-
NodeVolumeType: Tentukan jenis volume root untuk node Anda.
-
KeyName: Masukkan nama key pair Amazon EC2 SSH yang dapat Anda gunakan untuk terhubung menggunakan SSH ke node Anda setelah diluncurkan. Jika Anda belum memiliki EC2 key pair Amazon, Anda dapat membuatnya di Konsol Manajemen AWS. Untuk informasi selengkapnya, lihat pasangan EC2 kunci Amazon di Panduan EC2 Pengguna Amazon.
catatan
Jika Anda tidak menyediakan key pair di sini, pembuatan AWS CloudFormation stack gagal.
-
BootstrapArguments: Tentukan argumen opsional apa pun untuk diteruskan ke skrip bootstrap node, seperti
kubeletargumen tambahan. Untuk informasi lebih lanjut, lihat informasi penggunaan skrip bootstrapdi GitHub. Untuk menyebarkan grup simpul yang:
-
dapat menetapkan jumlah alamat IP yang jauh lebih tinggi ke Pod daripada konfigurasi default, lihatTetapkan lebih banyak alamat IP ke node Amazon EKS dengan awalan.
-
dapat menetapkan
IPv4alamat ke Pod dari blok CIDR yang berbeda dari instans, lihat. Menerapkan Pod di subnet alternatif dengan jaringan khusus -
dapat menetapkan
IPv6alamat ke Pod dan layanan, lihatPelajari tentang IPv6 alamat ke klaster, Pod, dan layanan. -
tidak memiliki akses internet keluar, lihatMenyebarkan kluster pribadi dengan akses internet terbatas.
-
-
Nonaktifkan IMDSv1: Secara default, setiap node mendukung Layanan Metadata Instans Versi 1 (IMDSv1) dan. IMDSv2 Anda dapat menonaktifkan IMDSv1. Untuk mencegah penggunaan node dan Pod future dalam grup node MDSv1, atur Disable IMDSv1 ke true. Untuk informasi selengkapnya tentang IMDS, lihat Mengonfigurasi layanan metadata instans. Untuk informasi selengkapnya tentang membatasi akses ke node Anda, lihat Membatasi akses ke profil instance yang ditetapkan ke node pekerja
. -
VpcId: Masukkan ID untuk VPC yang Anda buat.
-
Subnet: Pilih subnet yang sudah Anda buat untuk VPC Anda. Jika Anda membuat VPC menggunakan langkah-langkah yang dijelaskan dalam Membuat VPC Amazon untuk kluster Amazon EKS Anda, tentukan hanya subnet pribadi dalam VPC agar node Anda dapat diluncurkan. Anda dapat melihat subnet mana yang bersifat pribadi dengan membuka setiap subnet link dari tab Networking cluster Anda.
penting
-
Jika salah satu subnet adalah subnet publik, maka mereka harus mengaktifkan pengaturan tugas alamat IP publik otomatis. Jika pengaturan tidak diaktifkan untuk subnet publik, maka node apa pun yang Anda terapkan ke subnet publik tersebut tidak akan diberi alamat IP publik dan tidak akan dapat berkomunikasi dengan cluster atau layanan lainnya. AWS Jika subnet digunakan sebelum 26 Maret 2020 menggunakan salah satu templat AWS CloudFormation VPC Amazon EKS, atau dengan menggunakan
eksctl, maka penetapan alamat IP publik otomatis dinonaktifkan untuk subnet publik. Untuk informasi tentang cara mengaktifkan penetapan alamat IP publik untuk subnet, lihat Memodifikasi atribut IPv4 pengalamatan publik untuk subnet Anda. Jika node dikerahkan ke subnet pribadi, maka node dapat berkomunikasi dengan cluster dan AWS layanan lainnya melalui gateway NAT. -
Jika subnet tidak memiliki akses internet, pastikan Anda mengetahui pertimbangan dan langkah tambahan dalam Menyebarkan kluster pribadi dengan akses internet terbatas.
-
Jika Anda memilih subnet AWS Outposts, Wavelength, atau Local Zone, subnet tidak boleh diteruskan saat Anda membuat cluster.
-
-
-
Pilih pilihan yang Anda inginkan di halaman Configure stack options, lalu pilih Next.
-
Pilih kotak centang di sebelah kiri Saya mengakui yang AWS CloudFormation mungkin membuat sumber daya IAM. , dan kemudian pilih Buat tumpukan.
-
Setelah tumpukan Anda selesai dibuat, pilih tumpukan di konsol dan pilih Outputs.
-
Rekam NodeInstanceRoleuntuk grup node yang telah dibuat. Anda memerlukan ini saat mengonfigurasi simpul Amazon EKS Anda.
Langkah 2: Aktifkan node untuk bergabung dengan cluster Anda
catatan
Jika Anda meluncurkan node di dalam VPC pribadi tanpa akses internet keluar, pastikan untuk mengaktifkan node untuk bergabung dengan cluster Anda dari dalam VPC.
-
Periksa untuk melihat apakah Anda sudah memiliki
aws-authConfigMap.kubectl describe configmap -n kube-system aws-auth -
Jika Anda ditampilkan
aws-authConfigMap, maka perbarui sesuai kebutuhan.-
Buka
ConfigMapuntuk mengedit.kubectl edit -n kube-system configmap/aws-auth -
Tambahkan
mapRolesentri baru sesuai kebutuhan. Tetapkanrolearnnilai ke NodeInstanceRolenilai yang Anda rekam dalam prosedur sebelumnya.[...] data: mapRoles: | - rolearn: <ARN of instance role (not instance profile)> username: system:node:{{EC2PrivateDNSName}} groups: - system:bootstrappers - system:nodes [...] -
Simpan file dan keluar dari editor teks Anda.
-
-
Jika Anda menerima kesalahan yang menyatakan "
Error from server (NotFound): configmaps "aws-auth" not found, maka terapkan stokConfigMap.-
Unduh peta konfigurasi.
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/aws-auth-cm.yaml -
Dalam
aws-auth-cm.yamlfile, aturrolearnnilai ke NodeInstanceRolenilai yang Anda rekam dalam prosedur sebelumnya. Anda dapat melakukan ini dengan editor teks, atau dengan menggantimy-node-instance-roledan menjalankan perintah berikut:sed -i.bak -e 's|<ARN of instance role (not instance profile)>|my-node-instance-role|' aws-auth-cm.yaml -
Terapkan konfigurasi. Perintah ini mungkin memerlukan waktu beberapa menit untuk diselesaikan.
kubectl apply -f aws-auth-cm.yaml
-
-
Perhatikan status simpul Anda dan tunggu sampai simpul mencapai Status
Ready.kubectl get nodes --watchMasukkan
Ctrl+Cuntuk kembali ke prompt shell.catatan
Jika Anda menerima kesalahan otorisasi atau jenis sumber daya, lihat Tidak sah atau akses ditolak (kubectl) di topik pemecahan masalah.
Jika node gagal bergabung dengan cluster, maka lihat Simpul gagal untuk bergabung dengan klaster di chapter Troubleshooting.
-
(Hanya node GPU) Jika Anda memilih jenis instans GPU dan AMI akselerasi Amazon EKS yang dioptimalkan, Anda harus menerapkan plugin perangkat NVIDIA untuk Kubernetes
sebagai a di cluster Anda. DaemonSet Ganti vX.X.Xdengan s-device-plugin versi NVIDIA/K8yang Anda inginkan sebelum menjalankan perintah berikut. kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/vX.X.X/deployments/static/nvidia-device-plugin.yml
Langkah 3: Tindakan tambahan
-
(Opsional) Deploy aplikasi sampel untuk menguji simpul klaster dan Linux Anda.
-
(Opsional) Jika kebijakan IAM terkelola Amazoneks_CNI_Policy (jika Anda memiliki klaster) atau
AmazonEKS_CNI_IPv6_Policy(yang Anda buat sendiri jika Anda memilikiIPv4klaster) dilampirkan ke peran IAM node Amazon EKS Anda, kami sarankan untuk menetapkannya ke peran IAM yang Anda kaitkan ke akun layanan Kubernetes sebagai gantinya.IPv6aws-nodeUntuk informasi selengkapnya, lihat Konfigurasikan plugin Amazon VPC CNI untuk menggunakan IRSA. -
Sebaiknya blokir akses Pod ke IMDS jika kondisi berikut benar:
-
Anda berencana untuk menetapkan peran IAM ke semua akun layanan Kubernetes Anda sehingga Pod hanya memiliki izin minimum yang mereka butuhkan.
-
Tidak ada Pod dalam klaster yang memerlukan akses ke layanan metadata EC2 instans Amazon (IMDS) karena alasan lain, seperti mengambil Region saat ini. AWS
Untuk informasi selengkapnya, lihat Membatasi akses ke profil instance yang ditetapkan ke node pekerja
. -