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.
Mengaktifkan Windows dukungan untuk klaster Amazon EKS Anda
Sebelum menerapkan Windows node, perhatikan pertimbangan berikut.
Pertimbangan
-
Anda dapat menggunakan jaringan host pada node Windows menggunakan
HostProcess
Pod. Untuk informasi selengkapnya, lihat Membuat WindowsHostProcess
Poddi Kubernetes dokumentasi. -
Cluster Amazon EKS harus berisi satu Linux atau lebih node Fargate untuk menjalankan Pods sistem inti yang hanya Linux berjalan, seperti. CoreDNS
-
Log
kube-proxy
peristiwakubelet
dan diarahkan ke LogEKS
Windows Peristiwa dan diatur ke batas 200 MB. -
Anda tidak dapat menggunakan Kelompok keamanan untuk Pods dengan Pods berjalan di Windows node.
-
Anda tidak dapat menggunakan jaringan khusus dengan Windows node.
-
Anda tidak dapat menggunakan
IPv6
dengan Windows node. -
Windowsnode mendukung satu elastic network interface per node. Secara default, jumlah Pods yang dapat Anda jalankan per Windows node sama dengan jumlah alamat IP yang tersedia per elastic network interface untuk jenis instance node, minus satu. Untuk informasi selengkapnya, lihat alamat IP per antarmuka jaringan per jenis instans di Panduan Pengguna Amazon EC2.
-
Di kluster Amazon EKS, satu layanan dengan penyeimbang beban dapat mendukung hingga 1024 back-end. Pods Masing-masing Pod memiliki alamat IP uniknya sendiri. 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 denganIPv4
alamat yang sama karenakube-proxy
aturan basi. -
Sumber untuk pengontrol dikelola padaGitHub. Untuk berkontribusi, atau mengajukan masalah terhadap pengontrol, kunjungi proyek
diGitHub. -
Saat menentukan ID AMI khusus untuk grup node Windows terkelola, tambahkan
eks:kube-proxy-windows
ke peta konfigurasi AWS IAM Authenticator Anda. Untuk informasi selengkapnya, lihat Batas dan ketentuan saat menentukan ID AMI.
Prasyarat
-
Sebuah klaster yang sudah ada. Cluster harus menjalankan salah satu Kubernetes versi dan versi platform yang tercantum dalam tabel berikut. Versi apa pun Kubernetes dan platform yang lebih lambat dari yang terdaftar juga didukung. Jika versi klaster atau platform Anda lebih awal dari salah satu versi berikut, Anda perlu mengaktifkan Windows dukungan lama di bidang data klaster Anda. Setelah klaster Anda berada di salah satu versi berikut Kubernetes dan platform, atau yang lebih baru, Anda dapat menghapus Windows dukungan lama dan mengaktifkan Windows dukungan di bidang kontrol Anda.
Versi Kubernetes Versi platform 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 node atau Fargate Pod untuk dijalankan. CoreDNS Jika Anda mengaktifkan Windows dukungan lama, Anda harus menggunakan Linux node (Anda tidak dapat menggunakan Pod Fargate) untuk menjalankannya. CoreDNS
-
Yang adaIAM role klaster Amazon EKS.
Mengaktifkan dukungan Windows
Jika klaster Anda tidak berada di, atau lebih baru, dari salah satu versi Kubernetes dan platform yang tercantum dalam Prasyarat, Anda harus mengaktifkan dukungan lama sebagai gantinya. Windows Untuk informasi selengkapnya, lihat Mengaktifkan dukungan lama Windows.
Jika Anda belum pernah mengaktifkan Windows dukungan di klaster Anda, lanjutkan ke langkah berikutnya.
Jika Anda mengaktifkan Windows dukungan pada klaster yang lebih awal dari versi Kubernetes atau platform yang tercantum dalam Prasyarat, maka Anda harus terlebih dahulu menghapus vpc-resource-controller dan vpc-admission-webhook dari bidang data Anda. Mereka sudah usang dan tidak lagi dibutuhkan.
Untuk mengaktifkan Windows dukungan untuk klaster Anda
-
Jika Anda tidak memiliki node Amazon Linux di cluster Anda dan menggunakan grup keamanan untukPods, lewati ke langkah berikutnya. Jika tidak, konfirmasikan bahwa kebijakan
AmazonEKSVPCResourceController
terkelola dilampirkan ke peran klaster Anda. Ganti
dengan nama peran cluster Anda.eksClusterRole
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.
-
Lampirkan kebijakan ResourceController terkelola AmazonekSvPC ke Anda. IAM role klaster Amazon EKS Ganti
dengan nama peran cluster Anda.eksClusterRole
aws iam attach-role-policy \ --role-name
eksClusterRole
\ --policy-arn arn:aws:iam::aws:policy/AmazonEKSVPCResourceController -
Buat file bernama
dengan isi berikut ini.vpc-resource-controller-configmap.yaml
apiVersion: v1 kind: ConfigMap metadata: name: amazon-vpc-cni namespace: kube-system data: enable-windows-ipam: "true"
-
Terapkan
ConfigMap
ke cluster Anda.kubectl apply -f
vpc-resource-controller-configmap.yaml
-
Verifikasi bahwa Anda
aws-auth
ConfigMap
berisi pemetaan untuk peran instance Windows node untuk menyertakan grup izineks:kube-proxy-windows
RBAC. 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 memperbaruiConfigMap
atau membuatnya untuk menyertakan grup yang diperlukan. Untuk informasi lebih lanjut tentangaws-auth
ConfigMap
, lihatTerapkan aws-authConfigMap ke cluster Anda.
Menghapus Windows dukungan lama dari pesawat data Anda
Jika Anda mengaktifkan Windows dukungan pada klaster yang lebih awal dari versi Kubernetes atau platform yang tercantum dalam Prasyarat, maka Anda harus terlebih dahulu menghapus vpc-resource-controller
dan vpc-admission-webhook
dari bidang data Anda. Mereka sudah usang dan tidak lagi diperlukan karena fungsionalitas yang mereka sediakan sekarang diaktifkan di bidang kontrol.
-
Copot pemasangan
vpc-resource-controller
dengan perintah berikut. Gunakan perintah ini terlepas dari alat mana Anda awalnya menginstalnya. Ganti
(hanya instance teks itu setelahnyaregion-code
/manifests/
) dengan tempat Wilayah AWS cluster Anda berada.kubectl delete -f https://s3.us-west-2.amazonaws.com/amazon-eks/manifests/
region-code
/vpc-resource-controller/latest/vpc-resource-controller.yaml -
Copot pemasangan
vpc-admission-webhook
menggunakan instruksi untuk alat yang Anda instal. -
Aktifkan Windows dukungan untuk cluster Anda di bidang kontrol.
Menonaktifkan dukungan Windows
Untuk menonaktifkan Windows dukungan pada klaster Anda
-
Jika klaster Anda berisi node Amazon Linux dan Anda menggunakan grup keamanan untuk Pods bersamanya, lewati langkah ini.
Hapus kebijakan IAM
AmazonVPCResourceController
terkelola dari peran klaster Anda. Ganti
dengan nama peran klaster Anda daneksClusterRole
dengan ID akun Anda.111122223333
aws iam detach-role-policy \ --role-name
eksClusterRole
\ --policy-arn arn:aws:iam::aws:policy/AmazonEKSVPCResourceController -
Nonaktifkan Windows IPAM di.
amazon-vpc-cni
ConfigMapkubectl patch configmap/amazon-vpc-cni \ -n kube-system \ --type merge \ -p '{"data":{"enable-windows-ipam":"false"}}'
Menerapkan Pod
Saat Anda menerapkan Pod ke klaster Anda, Anda perlu menentukan sistem operasi yang mereka gunakan jika Anda menjalankan campuran tipe node.
Untuk LinuxPods, gunakan teks pemilih simpul berikut dalam manifes Anda.
nodeSelector: kubernetes.io/os: linux kubernetes.io/arch: amd64
Untuk WindowsPods, 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.
Mengaktifkan dukungan lama Windows
Jika klaster Anda berada di, atau lebih baru, dari salah satu versi Kubernetes dan platform yang tercantum dalam Prasyarat, maka sebaiknya Anda mengaktifkan Windows dukungan pada bidang kontrol Anda. Untuk informasi selengkapnya, lihat Mengaktifkan dukungan Windows.
Langkah-langkah berikut membantu Anda mengaktifkan Windows dukungan lama untuk bidang data kluster Amazon EKS jika versi klaster atau platform Anda lebih awal dari versi yang tercantum dalam Prasyarat. Setelah klaster dan versi platform Anda berada di, atau lebih lambat dari versi yang tercantum dalam Prasyarat, kami sarankan Anda menghapus Windows dukungan lama dan mengaktifkannya untuk bidang kontrol Anda.
Anda dapat menggunakaneksctl
, Windows klien, atau macOS atau Linux klien untuk mengaktifkan Windows dukungan lama untuk klaster Anda.
Memperbarui sertifikat webhook izin masuk VPC
Sertifikat yang digunakan oleh webhook izin masuk VPC berakhir satu tahun setelah diterbitkan. Untuk menghindari waktu henti, penting bagi Anda untuk memperbarui sertifikat sebelum kedaluwarsa. Anda dapat memeriksa tanggal kedaluwarsa sertifikat Anda saat ini dengan perintah berikut.
kubectl get secret \ -n kube-system \ vpc-admission-webhook-certs -o json | \ jq -r '.data."cert.pem"' | \ base64 -decode | \ openssl x509 \ -noout \ -enddate | \ cut -d= -f2
Contoh output adalah sebagai berikut.
May 28 14:23:00 2022 GMT
Anda dapat memperbarui sertifikat menggunakan eksctl
atau komputer Windows Linux/macOS. Ikuti petunjuk untuk alat yang awalnya Anda gunakan untuk memasang webhook izin masuk VPC. Misalnya, jika Anda awalnya memasang webhook izin masuk VPC menggunakan eksctl
, maka Anda harus memperbarui sertifikat menggunakan petunjuk pada tab eksctl
.
Mendukung Pod kepadatan yang lebih tinggi pada node Windows
Di Amazon EKS, masing-masing Pod dialokasikan IPv4
alamat dari VPC Anda. 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 node. 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 dari antarmuka jaringan, sehingga tidak dapat dialokasikanPods.
Anda dapat mengaktifkan Pod kepadatan yang lebih tinggi 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 Tingkatkan jumlah alamat IP yang tersedia untuk node Amazon EC2 Anda.