Menyebarkan node Windows pada cluster EKS - Amazon EKS

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

Menyebarkan node Windows pada cluster EKS

Sebelum menyebarkan Windows node, perhatikan pertimbangan berikut.

  • Anda dapat menggunakan jaringan host pada node Windows menggunakan HostProcess Pod. Untuk informasi selengkapnya, lihat Membuat Windows HostProcessPod di 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 kube-proxy peristiwa kubelet dan diarahkan ke Log EKS Windows Peristiwa dan diatur ke batas 200 MB.

  • Anda tidak dapat menggunakan Menetapkan grup keamanan ke masing-masing pod 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 khusus 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.

  • 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.

    Versi Kubernetes Versi platform

    1.31

    eks.4

    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.

  • IAMPeran EKS cluster Amazon yang ada.

Aktifkan Windows dukungan

  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 IAMperan EKS klaster Amazon Anda. 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 konten berikut.

    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.

Menyebarkan 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 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 Pods pada node Anda. Untuk informasi selengkapnya, lihat Tetapkan lebih banyak alamat IP ke EKS node Amazon dengan awalan.