View a markdown version of this page

Addon - Panduan Pengguna Eksctl

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

Addon

Topik ini menjelaskan cara mengelola Amazon EKS Add-Ons untuk cluster Amazon EKS 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 cluster.

Awas

Dimulai dengan eksctl v0.184.0 (dan v0.201.0 untuk metrics-server), eksctl menginstal addons default (vpc-cni, coredns, kube-proxy, metrics-server) sebagai add-on EKS alih-alih add-on yang dikelola sendiri. Ini berarti Anda harus menggunakan al eksctl update addon ih-alih eksctl utils update-* perintah.

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

EKS Add-ons sekarang mendukung penerimaan izin IAM melalui EKS Pod Identity Association, memungkinkan mereka terhubung dengan layanan AWS di luar cluster

Membuat addons

Eksctl memberikan lebih banyak fleksibilitas untuk mengelola addons cluster:

Di file konfigurasi Anda, Anda dapat menentukan addons yang Anda inginkan dan (jika diperlukan) peran atau kebijakan untuk 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 satu dariattachPolicy, 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, cluster Anda harus OIDC diaktifkan. Jika tidak diaktifkan, kami mengabaikan kebijakan apa pun yang terlampir.

Anda kemudian dapat membuat addons 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>
eksctl create addon --name aws-ebs-csi-driver --namespace-config 'namespace=custom-namespace'
Tip

Gunakan --namespace-config bendera untuk menyebarkan addons ke namespace kustom alih-alih namespace default.

Selama pembuatan addon, jika versi addon yang dikelola sendiri sudah ada di cluster, Anda dapat memilih bagaimana potensi configMap konflik harus diselesaikan dengan mengatur 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 mendukung tiga nilai berbeda:

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

  • overwrite- EKS mengganti setiap perubahan konfigurasi kembali ke nilai default EKS.

  • preserve- EKS tidak mengubah nilainya. Pembuatan mungkin gagal. (Mirip none dengan, tetapi berbeda dari preserve dalam memperbarui addons).

Mendaftarkan 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 add-on 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. Itu juga dapat diatur ke versi rilis addon, seperti v1.7.5 atau1.7.5, dan tag akh eksbuild iran akan ditemukan dan ditetapkan untuk Anda.

Lihat bagian di bawah ini tentang cara menemukan add-on 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 addons apa yang tersedia untuk versi kubernetes tertentu, Anda dapat menjalankan:

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

Anda juga dapat menemukan addons dengan memfiltertype, owner and/or publisher. Misalnya, untuk melihat addons untuk pemilik dan tipe tertentu, Anda dapat menjalankan:

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

Ben publishers deratypes, owners dan bersifat opsional dan dapat ditentukan bersama atau satu per satu untuk memfilter hasil.

Menemukan skema konfigurasi untuk addons

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

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 YAML yang didukung.

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

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

Menggunakan namespace kustom

Sebuah namespace kustom dapat disediakan dalam file konfigurasi selama pembuatan addons. Namespace tidak dapat diperbarui setelah addon dibuat.

Menggunakan file konfigurasi

addons: - name: aws-ebs-csi-driver version: latest namespaceConfig: namespace: custom-namespace

Menggunakan flag CLI

Atau, Anda dapat menentukan namespace khusus menggunakan --namespace-config bendera:

eksctl create addon --cluster my-cluster --name aws-ebs-csi-driver --namespace-config 'namespace=custom-namespace'

Perintah get juga akan mengambil nilai namespace untuk addon

- ConfigurationValues: "" IAMRole: "" Issues: null Name: aws-ebs-csi-driver NamespaceConfig: namespace: custom-namespace NewerVersion: "" PodIdentityAssociations: null Status: ACTIVE Version: v1.47.0-eksbuild.1

Memperbarui addons

Anda dapat memperbarui addons ke versi yang lebih baru dan mengubah kebijakan 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>
catatan

Konfigurasi namespace tidak dapat diperbarui setelah addon dibuat. --namespace-configBendera hanya tersedia selama pembuatan addon.

Mirip 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 mempertahankan, atau mengganti mereka. Fungsionalitas opsional ini tersedia melalui bidang file konfigurasi yang sam resolveConflicts a. 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 mengganti setiap perubahan konfigurasi kembali ke nilai default EKS.

  • preserve- EKS mempertahankan nilainya. Jika Anda memilih opsi ini, sebaiknya Anda menguji perubahan bidang dan nilai apa pun pada cluster 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 cluster, semua peran IAM yang terkait dengan addons juga dihapus.

Fleksibilitas pembuatan cluster untuk add-on jaringan default

Saat cluster dibuat, EKS secara otomatis menginstal VPC CNI, CoreDNS, dan kube-proxy sebagai addons 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 addons secara eksplisit di dan disetel, seperti di: 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 addons default sebagai add-on EKS alih-alih add-on yang dikelola sendiri selama pembuatan cluster jika addonsConfig.disableDefaultAddons tidak secara eksplisit disetel ke true. Dengan demikian, eksctl utils update-* perintah tidak dapat lagi digunakan untuk memperbarui addons untuk cluster yang dibuat dengan eksctl v0.184.0 ke atas:

  • eksctl utils update-aws-node

  • eksctl utils update-coredns

  • eksctl utils update-kube-proxy

Sebaliknya, eksctl update addon harus digunakan sekarang.

Untuk mempelajari selengkapnya, lihat Amazon EKS memperkenalkan fleksibilitas pembuatan cluster untuk add-on jaringan.