Deploy Windows node pada EKS cluster - Amazon EKS

Bantu tingkatkan halaman ini

Ingin berkontribusi pada panduan pengguna ini? Gulir ke bagian bawah halaman ini dan pilih Edit halaman ini GitHub. Kontribusi Anda akan membantu membuat panduan pengguna kami lebih baik untuk semua orang.

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

Deploy Windows node pada EKS cluster

Sebelum menyebarkan Windows node, perhatikan pertimbangan berikut.

Pertimbangan
  • Anda dapat menggunakan jaringan host pada node Windows menggunakan HostProcess Pod. Untuk informasi selengkapnya, lihat Membuat Windows HostProcessPoddi Kubernetes dokumentasi.

  • EKSCluster Amazon harus berisi satu atau lebih Linux atau node Fargate untuk menjalankan sistem inti Pods yang hanya berjalan di Linux, seperti CoreDNS.

  • Log kubelet dan kube-proxy peristiwa dialihkan ke EKS Windows Event Log dan diatur ke batas 200 MB.

  • Anda tidak dapat menggunakan Tetapkan grup keamanan ke individu pods dengan Pods berjalan di Windows simpul.

  • Anda tidak dapat menggunakan jaringan khusus dengan Windows simpul.

  • Anda tidak dapat menggunakan IPv6 dengan Windows simpul.

  • Windows node mendukung satu elastic network interface per node. Secara default, jumlah Pods bahwa Anda dapat menjalankan per Windows node sama dengan jumlah alamat IP yang tersedia per elastic network interface untuk tipe instance node, dikurangi satu. Untuk informasi selengkapnya, lihat alamat IP per antarmuka jaringan per jenis instans di Panduan EC2 Pengguna Amazon.

  • Di EKS cluster Amazon, satu layanan dengan penyeimbang beban dapat mendukung hingga 1024 back-end Pods. Masing-masing Pod Memiliki alamat IP yang unik. Batas sebelumnya 64 Pods tidak lagi terjadi, setelah pembaruan Windows Server dimulai dengan OS Build 17763.2746.

  • Kontainer Windows tidak didukung untuk Amazon EKS Pods di Fargate.

  • Anda tidak dapat mengambil log dari vpc-resource-controller Pod. Anda sebelumnya bisa ketika Anda menyebarkan pengontrol ke bidang data.

  • Ada periode pendinginan sebelum IPv4 alamat ditetapkan ke Pod baru. Hal ini mencegah lalu lintas mengalir ke Pod lama dengan IPv4 alamat yang sama karena kube-proxy aturan basi.

  • Sumber untuk pengontrol dikelola pada GitHub. Untuk berkontribusi, atau mengajukan masalah terhadap pengontrol, kunjungi proyek di GitHub.

  • Saat menentukan AMI ID kustom untuk Windows grup node terkelola, tambahkan eks:kube-proxy-windows ke peta konfigurasi AWS IAM Authenticator Anda. Untuk informasi selengkapnya, lihat Batas dan kondisi saat menentukan ID AMI.

  • Jika menjaga IPv4 alamat yang tersedia sangat penting untuk subnet Anda, lihat Panduan Praktik EKS Terbaik - Manajemen Alamat IP Jaringan Windows untuk panduan.

Prasyarat
  • Sebuah klaster yang sudah ada. Cluster harus menjalankan salah satu Kubernetes versi dan versi platform yang tercantum dalam tabel berikut. Setiap Kubernetes dan versi platform yang lebih lambat dari yang terdaftar juga didukung.

    Kubernetes versi Versi platform
    1.31 eks.1
    1.30 eks.2
    1.29 eks.1
    1.28 eks.1
    1.27 eks.1
    1.26 eks.1
    1,25 eks.1
    1.24 eks.2
  • Cluster Anda harus memiliki setidaknya satu (kami sarankan setidaknya dua) Linux simpul atau Fargate Pod untuk menjalankan CoreDNS. Jika Anda mengaktifkan legacy Windows dukungan, Anda harus menggunakan Linux node (Anda tidak dapat menggunakan Fargate Pod) untuk menjalankan CoreDNS.

  • Yang sudah adaIAMPeran EKS cluster Amazon.

Aktifkan Windows dukungan

Untuk mengaktifkan Windows dukungan untuk klaster Anda
  1. Jika Anda tidak memiliki node Amazon Linux di cluster Anda dan gunakan grup keamanan untuk Pods, lompat ke langkah berikutnya. Jika tidak, konfirmasikan bahwa kebijakan AmazonEKSVPCResourceController terkelola dilampirkan ke peran klaster Anda. Ganti eksClusterRole dengan nama peran cluster Anda.

    aws iam list-attached-role-policies --role-name eksClusterRole

    Contoh output adalah sebagai berikut.

    { "AttachedPolicies": [ { "PolicyName": "AmazonEKSClusterPolicy", "PolicyArn": "arn:aws:iam::aws:policy/AmazonEKSClusterPolicy" }, { "PolicyName": "AmazonEKSVPCResourceController", "PolicyArn": "arn:aws:iam::aws:policy/AmazonEKSVPCResourceController" } ] }

    Jika kebijakan dilampirkan, seperti pada output sebelumnya, lewati langkah berikutnya.

  2. Lampirkan kebijakan terkelola A mazonEKSVPCResource Controller ke kebijakan AndaIAMPeran EKS cluster Amazon. Ganti eksClusterRole dengan nama peran cluster Anda.

    aws iam attach-role-policy \ --role-name eksClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSVPCResourceController
  3. Buat file bernama vpc-resource-controller-configmap.yaml dengan isi berikut ini.

    apiVersion: v1 kind: ConfigMap metadata: name: amazon-vpc-cni namespace: kube-system data: enable-windows-ipam: "true"
  4. Terapkan ConfigMap ke cluster Anda.

    kubectl apply -f vpc-resource-controller-configmap.yaml
  5. Verifikasi bahwa Anda aws-auth ConfigMap berisi pemetaan untuk peran instans Windows node untuk memasukkan grup eks:kube-proxy-windows RBAC izin. Anda dapat memverifikasi dengan menjalankan perintah berikut.

    kubectl get configmap aws-auth -n kube-system -o yaml

    Contoh output adalah sebagai berikut.

    apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: kube-system data: mapRoles: | - groups: - system:bootstrappers - system:nodes - eks:kube-proxy-windows # This group is required for Windows DNS resolution to work rolearn: arn:aws:iam::111122223333:role/eksNodeRole username: system:node:{{EC2PrivateDNSName}} [...]

    Anda harus melihat eks:kube-proxy-windows terdaftar di bawah grup. Jika grup tidak ditentukan, Anda perlu memperbarui ConfigMap atau membuatnya untuk menyertakan grup yang diperlukan. Untuk informasi lebih lanjut tentang aws-authConfigMap, lihatTerapkan aws-authConfigMap ke cluster Anda.

Menerapkan Pod Windows

Saat Anda menerapkan Pod ke klaster Anda, Anda perlu menentukan sistem operasi yang mereka gunakan jika Anda menjalankan campuran tipe node.

Untuk Linux Pods, gunakan teks pemilih simpul berikut dalam manifes Anda.

nodeSelector: kubernetes.io/os: linux kubernetes.io/arch: amd64

Untuk Windows Pods, gunakan teks pemilih simpul berikut dalam manifes Anda.

nodeSelector: kubernetes.io/os: windows kubernetes.io/arch: amd64

Anda dapat menerapkan aplikasi sampel untuk melihat pemilih node yang digunakan.

Support lebih tinggi Pod kepadatan pada node Windows

Di AmazonEKS, masing-masing Pod dialokasikan IPv4 alamat dari AndaVPC. Karena ini, jumlah Pods yang dapat Anda terapkan ke node dibatasi oleh alamat IP yang tersedia, bahkan jika ada sumber daya yang cukup untuk menjalankan lebih banyak Pods pada simpul. Karena hanya satu elastic network interface yang didukung oleh node Windows, secara default, jumlah maksimum alamat IP yang tersedia pada node Windows sama dengan:

Number of private IPv4 addresses for each interface on the node - 1

Satu alamat IP digunakan sebagai alamat IP utama antarmuka jaringan, sehingga tidak dapat dialokasikan Pods.

Anda dapat mengaktifkan yang lebih tinggi Pod kepadatan pada node Windows dengan mengaktifkan delegasi awalan IP. Fitur ini memungkinkan Anda untuk menetapkan /28 IPv4 awalan ke antarmuka jaringan utama, bukan menetapkan alamat sekunder. IPv4 Menetapkan awalan IP meningkatkan IPv4 alamat maksimum yang tersedia pada node menjadi:

(Number of private IPv4 addresses assigned to the interface attached to the node - 1) * 16

Dengan jumlah alamat IP yang tersedia secara signifikan lebih besar ini, alamat IP yang tersedia seharusnya tidak membatasi kemampuan Anda untuk menskalakan jumlah alamat IP yang tersedia. Pods pada node Anda. Untuk informasi selengkapnya, lihat Tetapkan lebih banyak alamat IP ke EKS node Amazon dengan awalan.