Buat yang dikelola sendiri Bottlerocket simpul - Amazon EKS

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

Buat yang dikelola sendiri Bottlerocket simpul

catatan

Grup node terkelola mungkin menawarkan beberapa keuntungan untuk kasus penggunaan Anda. Untuk informasi selengkapnya, lihat Sederhanakan siklus hidup node dengan grup node terkelola.

Topik ini menjelaskan cara meluncurkan grup Auto Scaling dari node Bottlerocket yang mendaftar dengan cluster Amazon Anda. EKS Bottlerocket adalah Linuxberbasis sistem operasi open-source dari AWS yang dapat Anda gunakan untuk menjalankan kontainer pada mesin virtual atau host bare metal. Setelah node bergabung dengan cluster, Anda dapat menerapkan Kubernetes aplikasi untuk mereka. Untuk informasi lebih lanjut tentang Bottlerocket, lihat Menggunakan Bottlerocket AMI dengan Amazon di EKS GitHub dan AMIdukungan Kustom dalam eksctl dokumentasi.

Untuk informasi tentang peningkatan di tempat, lihat Operator Pembaruan Bottlerocket di GitHub.

penting
  • EKSNode Amazon adalah EC2 instans Amazon standar, dan Anda ditagih berdasarkan harga EC2 instans Amazon normal. Untuk informasi selengkapnya, lihat EC2harga Amazon.

  • Anda dapat meluncurkan node Bottlerocket di EKS cluster Amazon yang diperluas di AWS Outposts, tetapi Anda tidak dapat meluncurkannya di cluster lokal di Outposts. AWS Untuk informasi selengkapnya, lihat Menerapkan Amazon EKS lokal dengan Outposts AWS.

  • Anda dapat menerapkan ke EC2 instans Amazon dengan atau x86 Arm prosesor. Namun, Anda tidak dapat menerapkan ke instance yang memiliki Inferentia keripik.

  • Bottlerocket kompatibel dengan AWS CloudFormation. Namun, tidak ada CloudFormation template resmi yang dapat disalin untuk digunakan Bottlerocket node untuk AmazonEKS.

  • Bottlerocket gambar tidak datang dengan SSH server atau shell. Anda dapat menggunakan metode out-of-band akses untuk mengizinkan SSH mengaktifkan wadah admin dan meneruskan beberapa langkah konfigurasi bootstrap dengan data pengguna. Untuk informasi lebih lanjut, lihat bagian ini di READMEbottlerocket .md di GitHub:

Prosedur ini membutuhkan eksctl versi 0.194.0 atau yang lebih baru. Anda dapat memeriksa versi Anda dengan perintah berikut:

eksctl version

Untuk petunjuk tentang cara menginstal atau meningkatkaneksctl, lihat Instalasi dalam eksctl dokumentasi. NOTE: Prosedur ini hanya berfungsi untuk cluster yang dibuat denganeksctl.

+. Salin konten berikut ke perangkat Anda. Ganti my-cluster dengan nama cluster 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 ng-bottlerocket dengan 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. Untuk menerapkan pada instance Arm, ganti m5.large dengan tipe instance Arm. Ganti my-ec2-keypair-name dengan nama EC2 SSH key pair Amazon 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 AWS Management Console. Untuk informasi selengkapnya, lihat pasangan EC2 kunci Amazon di Panduan EC2 Pengguna Amazon. Ganti semua yang tersisa example values dengan nilai-nilai Anda sendiri. Setelah Anda membuat penggantian, jalankan perintah yang dimodifikasi untuk membuat bottlerocket.yaml file.

+ Jika menentukan jenis EC2 instans Amazon Arm, tinjau pertimbangan di Arm Amazon Linux yang EKS dioptimalkan Amazon AMIs sebelum menerapkan. Untuk petunjuk tentang cara menerapkan menggunakan kustom, lihat Membangun AMI Bottlerocket di GitHub dan AMIdukungan Kustom dalam eksctl dokumentasi. Untuk menerapkan grup node terkelola, terapkan kustom AMI menggunakan template peluncuran. Untuk informasi selengkapnya, lihat Sesuaikan node terkelola dengan templat peluncuran.

+IMPORTANT: Untuk menyebarkan grup node ke subnet AWS Outposts, AWS Wavelength, atau AWS Local Zone, jangan lewatkan subnet AWS Outposts, Wavelength, atau Local Zone saat Anda membuat AWS cluster. AWS Anda harus menentukan subnet dalam contoh berikut. Untuk informasi selengkapnya lihat Buat nodegroup dari file config dan Skema file config di dalam dokumentasi eksctl. Ganti region-code dengan AWS Wilayah tempat cluster Anda berada.

+

cat >bottlerocket.yaml <<EOF --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: region-code version: '1.30' iam: withOIDC: true nodeGroups: - name: ng-bottlerocket instanceType: m5.large desiredCapacity: 3 amiFamily: Bottlerocket ami: auto-ssm iam: attachPolicyARNs: - arn:aws: iam::aws:policy/AmazonEKSWorkerNodePolicy - arn:aws: iam::aws:policy/AmazonEC2ContainerRegistryReadOnly - arn:aws: iam::aws:policy/AmazonSSMManagedInstanceCore - arn:aws: iam::aws:policy/AmazonEKS_CNI_Policy ssh: allow: true publicKeyName: my-ec2-keypair-name EOF
  1. Deploy simpul Anda dengan perintah berikut.

    eksctl create nodegroup --config-file=bottlerocket.yaml

    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"
  2. (Opsional) Buat Kubernetes volume persisten pada a Bottlerocket node menggunakan EBSCSIPlugin Amazon. EBSDriver Amazon default bergantung pada alat sistem file yang tidak disertakan Bottlerocket. Untuk informasi selengkapnya tentang membuat kelas penyimpanan menggunakan driver, lihatSimpan volume Kubernetes dengan Amazon EBS.

  3. (Opsional) Secara default, kube-proxy menetapkan parameter nf_conntrack_max kernel ke nilai default yang mungkin berbeda dari apa Bottlerocket awalnya ditetapkan saat boot. Untuk menjaga Bottlerocket’s pengaturan default, edit the `kube-proxy konfigurasi dengan perintah berikut.

    kubectl edit -n kube-system daemonset kube-proxy

    Tambahkan --conntrack-max-per-core dan --conntrack-min ke kube-proxy argumen yang ada dalam contoh berikut. Pengaturan 0 menyiratkan bahwa tidak ada perubahan.

    containers: - command: - kube-proxy - --v=2 - --config=/var/lib/kube-proxy-config/config - --conntrack-max-per-core=0 - --conntrack-min=0
  4. (Opsional) Menyebarkan aplikasi sampel untuk menguji Bottlerocket simpul.

  5. Kami merekomendasikan pemblokiran Pod akses ke IMDS jika kondisi berikut benar:

    • Anda berencana untuk menetapkan IAM peran untuk semua Kubernetes akun layanan sehingga Pods hanya memiliki izin minimum yang mereka butuhkan.

    • Tidak Pods di klaster memerlukan akses ke layanan metadata EC2 instans Amazon (IMDS) untuk alasan lain, seperti mengambil Region saat ini. AWS

    Untuk informasi selengkapnya, lihat Membatasi akses ke profil instance yang ditetapkan ke node pekerja.