Addons - Panduan Pengguna Eksctl

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

Addons

Topik ini menjelaskan cara mengelola Add-On Amazon EKS untuk kluster Amazon EKS Anda menggunakan eksctl. EKS Add-Ons adalah fitur yang memungkinkan Anda mengaktifkan dan mengelola perangkat lunak operasional Kubernetes melalui EKS API, menyederhanakan proses menginstal, mengonfigurasi, dan memperbarui add-on klaster.

Awas

eksctl sekarang menginstal addons default (vpc-cni, coredns, kube-proxy) sebagai addons EKS alih-alih addon yang dikelola sendiri. Ini berarti Anda harus menggunakan eksctl update addon alih-alih eksctl utils update-* perintah untuk cluster yang dibuat dengan eksctl v0.184.0 dan di atasnya.

Anda dapat membuat cluster tanpa addons jaringan default ketika Anda ingin menggunakan plugin CNI alternatif seperti Cilium dan Calico.

Eks Add-on sekarang mendukung penerimaan izin IAM melalui Asosiasi Identitas Pod EKS, memungkinkan mereka untuk terhubung dengan layanan AWS di luar klaster

Membuat addons

Eksctl memberikan lebih banyak fleksibilitas untuk mengelola addons cluster:

Di file konfigurasi, Anda dapat menentukan addon yang Anda inginkan dan (jika diperlukan) peran atau kebijakan yang akan dilampirkan padanya:

apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: example-cluster region: us-west-2 iam: withOIDC: true addons: - name: vpc-cni # all below properties are optional version: 1.7.5 tags: team: eks # you can specify at most one of: attachPolicyARNs: - arn:aws:iam::account:policy/AmazonEKS_CNI_Policy # or serviceAccountRoleARN: arn:aws:iam::account:role/AmazonEKSCNIAccess # or attachPolicy: Statement: - Effect: Allow Action: - ec2:AssignPrivateIpAddresses - ec2:AttachNetworkInterface - ec2:CreateNetworkInterface - ec2:DeleteNetworkInterface - ec2:DescribeInstances - ec2:DescribeTags - ec2:DescribeNetworkInterfaces - ec2:DescribeInstanceTypes - ec2:DetachNetworkInterface - ec2:ModifyNetworkInterfaceAttribute - ec2:UnassignPrivateIpAddresses Resource: '*'

Anda dapat menentukan paling banyak salah satuattachPolicy, attachPolicyARNs danserviceAccountRoleARN.

Jika tidak ada yang ditentukan, addon akan dibuat dengan peran yang memiliki semua kebijakan yang direkomendasikan terlampir.

catatan

Untuk melampirkan kebijakan ke addons, klaster Anda harus telah OIDC diaktifkan. Jika tidak diaktifkan, kami mengabaikan kebijakan apa pun yang dilampirkan.

Anda kemudian dapat membuat addon ini selama proses pembuatan cluster:

eksctl create cluster -f config.yaml

Atau buat addons secara eksplisit setelah pembuatan cluster menggunakan file konfigurasi atau flag CLI:

eksctl create addon -f config.yaml
eksctl create addon --name vpc-cni --version 1.7.5 --service-account-role-arn <role-arn>

Selama pembuatan addon, jika versi addon yang dikelola sendiri sudah ada di cluster, Anda dapat memilih bagaimana potensi configMap konflik akan diselesaikan dengan menyetel resolveConflicts opsi melalui file konfigurasi, mis.

addons: - name: vpc-cni attachPolicyARNs: - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy resolveConflicts: overwrite

Untuk addon create, resolveConflicts bidang ini mendukung tiga nilai yang berbeda:

  • none- EKS tidak mengubah nilainya. Create mungkin gagal.

  • overwrite- EKS menimpa perubahan konfigurasi apa pun kembali ke nilai default EKS.

  • preserve- EKS tidak mengubah nilainya. Create mungkin gagal. (Mirip dengannone, tetapi berbeda dari preservedalam memperbarui addons).

Daftar addons yang diaktifkan

Anda dapat melihat addons apa yang diaktifkan di cluster Anda dengan menjalankan:

eksctl get addons --cluster <cluster-name>

atau

eksctl get addons -f config.yaml

Mengatur versi addon

Mengatur versi addon adalah opsional. Jika version bidang dibiarkan kosong eksctl akan menyelesaikan versi default untuk addon. Informasi lebih lanjut tentang versi mana yang merupakan versi default untuk addon tertentu dapat ditemukan di dokumentasi AWS tentang EKS. Perhatikan bahwa versi default mungkin belum tentu versi terbaru yang tersedia.

Versi addon dapat diatur kelatest. Atau, versi dapat diatur dengan tag build EKS yang ditentukan, seperti v1.7.5-eksbuild.1 atauv1.7.5-eksbuild.2. Ini juga dapat diatur ke versi rilis addon, seperti v1.7.5 atau1.7.5, dan tag eksbuild akhiran akan ditemukan dan diatur untuk Anda.

Lihat bagian di bawah ini tentang cara menemukan addons yang tersedia dan versinya.

Menemukan addons

Anda dapat menemukan addons apa yang tersedia untuk diinstal pada cluster Anda dengan menjalankan:

eksctl utils describe-addon-versions --cluster <cluster-name>

Ini akan menemukan versi kubernetes cluster Anda dan memfilternya. Atau jika Anda ingin melihat addon apa yang tersedia untuk versi kubernetes tertentu, Anda dapat menjalankan:

eksctl utils describe-addon-versions --kubernetes-version <version>

Anda juga dapat menemukan addons dengan memfilternyatype,. owner and/or publisher Misalnya, untuk melihat addons untuk pemilik dan jenis tertentu yang dapat Anda jalankan:

eksctl utils describe-addon-versions --kubernetes-version 1.22 --types "infra-management, policy-management" --owners "aws-marketplace"

Benderatypes, owners dan publishers bendera adalah opsional dan dapat ditentukan bersama-sama atau secara individual untuk memfilter hasilnya.

Menemukan skema konfigurasi untuk addons

Setelah menemukan addon dan versi, Anda dapat melihat opsi penyesuaian dengan mengambil skema konfigurasi JSON-nya.

eksctl utils describe-addon-configuration --name vpc-cni --version v1.12.0-eksbuild.1

Ini mengembalikan skema JSON dari berbagai opsi yang tersedia untuk addon ini.

Bekerja dengan nilai konfigurasi

ConfigurationValuesdapat disediakan dalam file konfigurasi selama pembuatan atau pembaruan addons. Hanya format JSON dan YAMAL yang didukung.

Untuk misalnya. ,

addons: - name: coredns configurationValues: |- replicaCount: 2
addons: - name: coredns version: latest configurationValues: "{\"replicaCount\":3}" resolveConflicts: overwrite
catatan

Ingatlah bahwa ketika nilai konfigurasi addon sedang dimodifikasi, konflik konfigurasi akan muncul.

Thus, we need to specify how to deal with those by setting the `resolveConflicts` field accordingly. As in this scenario we want to modify these values, we'd set `resolveConflicts: overwrite`.

Selain itu, perintah get sekarang juga akan mengambil ConfigurationValues untuk addon. misalnya

eksctl get addon --cluster my-cluster --output yaml
- ConfigurationValues: '{"replicaCount":3}' IAMRole: "" Issues: null Name: coredns NewerVersion: "" Status: ACTIVE Version: v1.8.7-eksbuild.3

Memperbarui addons

Anda dapat memperbarui addons ke versi yang lebih baru dan mengubah kebijakan apa yang dilampirkan dengan menjalankan:

eksctl update addon -f config.yaml
eksctl update addon --name vpc-cni --version 1.8.0 --service-account-role-arn <new-role>

Demikian pula dengan pembuatan addon, Saat memperbarui addon, Anda memiliki kontrol penuh atas perubahan konfigurasi yang mungkin telah Anda terapkan sebelumnya pada add-on itu. configMap Secara khusus, Anda dapat melestarikan, atau menimpa mereka. Fungsionalitas opsional ini tersedia melalui bidang file konfigurasi yang resolveConflicts sama. misalnya,

addons: - name: vpc-cni attachPolicyARNs: - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy resolveConflicts: preserve

Untuk pembaruan addon, resolveConflicts bidang menerima tiga nilai berbeda:

  • none- EKS tidak mengubah nilainya. Pembaruan mungkin gagal.

  • overwrite- EKS menimpa perubahan konfigurasi apa pun kembali ke nilai default EKS.

  • preserve- EKS mempertahankan nilainya. Jika Anda memilih opsi ini, kami sarankan Anda menguji setiap bidang dan perubahan nilai pada klaster non-produksi sebelum memperbarui add-on pada cluster produksi Anda.

Menghapus addons

Anda dapat menghapus addon dengan menjalankan:

eksctl delete addon --cluster <cluster-name> --name <addon-name>

Ini akan menghapus addon dan peran IAM apa pun yang terkait dengannya.

Saat Anda menghapus klaster, semua peran IAM yang terkait dengan addons juga akan dihapus.

Fleksibilitas pembuatan cluster untuk addons jaringan default

Ketika sebuah cluster dibuat, EKS secara otomatis menginstal VPC CNI, CoreDNS dan kube-proxy sebagai addon yang dikelola sendiri. Untuk menonaktifkan perilaku ini agar dapat menggunakan plugin CNI lain seperti Cilium dan Calico, eksctl sekarang mendukung pembuatan cluster tanpa addon jaringan default. Untuk membuat cluster seperti itu, aturaddonsConfig.disableDefaultAddons, seperti pada:

addonsConfig: disableDefaultAddons: true
eksctl create cluster -f cluster.yaml

Untuk membuat cluster hanya dengan CoreDNS dan kube-proxy dan bukan VPC CNI, tentukan addon secara eksplisit di dan atur, seperti pada: addons addonsConfig.disableDefaultAddons

addonsConfig: disableDefaultAddons: true addons: - name: kube-proxy - name: coredns
eksctl create cluster -f cluster.yaml

Sebagai bagian dari perubahan ini, eksctl sekarang menginstal addon default sebagai addon EKS alih-alih addon yang dikelola sendiri selama pembuatan cluster jika tidak secara eksplisit disetel ke true. addonsConfig.disableDefaultAddons Dengan demikian, eksctl utils update-* perintah tidak dapat lagi digunakan untuk memperbarui addons untuk cluster yang dibuat dengan eksctl v0.184.0 dan di atasnya:

  • eksctl utils update-aws-node

  • eksctl utils update-coredns

  • eksctl utils update-kube-proxy

Sebaliknya, eksctl update addon harus digunakan sekarang.

Untuk mempelajari lebih lanjut, lihat Amazon EKS memperkenalkan fleksibilitas pembuatan klaster untuk add-on jaringan.