Persyaratan produk berbasis kontainer - AWS Marketplace

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

Persyaratan produk berbasis kontainer

AWS Marketplace mempertahankan persyaratan berikut untuk semua produk dan penawaran berbasis kontainer di. AWS Marketplace Persyaratan ini membantu mempromosikan katalog yang aman, terjaga, dan dapat dipercaya untuk pelanggan kami. Kami juga mendorong penjual untuk meninjau implementasi kontrol dan protokol tambahan yang berlaku untuk memenuhi kebutuhan produk spesifik mereka.

Semua produk dan metadata terkait ditinjau ketika dikirimkan untuk memastikan bahwa mereka memenuhi atau melampaui persyaratan saat ini AWS Marketplace . Kami meninjau dan menyesuaikan kebijakan ini untuk memenuhi persyaratan keamanan dan penggunaan lainnya yang terus berkembang. AWS Marketplace terus memverifikasi bahwa produk yang ada terus memenuhi setiap perubahan pada persyaratan ini. Jika produk tidak sesuai, AWS Marketplace akan menghubungi Anda untuk memperbarui produk Anda. Dalam beberapa kasus, produk Anda mungkin sementara tidak tersedia untuk pelanggan baru hingga masalah teratasi.

Persyaratan keamanan

Semua produk berbasis kontainer harus mematuhi persyaratan keamanan berikut:

  • Citra kontainer Docker harus bebas dari malware, virus, atau kerentanan yang diketahui. Saat Anda menambahkan versi baru ke produk kontainer Anda, gambar kontainer yang disertakan dalam versi dipindai.

  • Jika produk berbasis container Anda memerlukan akses untuk mengelola AWS sumber daya, akses harus dicapai melalui peran IAM untuk akun layanan (jika dijalankan melalui Amazon Elastic Kubernetes Service (Amazon EKS)) atau peran IAM untuk tugas (jika dijalankan melalui Amazon Elastic Container Service (Amazon ECS)) alih-alih meminta kunci akses dari pengguna.

  • Produk berbasis kontainer hanya memerlukan sedikit hak istimewa untuk dijalankan. Untuk informasi selengkapnya, lihat Keamanan ECS dan Keamanan EKS.

  • Citra kontainer harus dikonfigurasi untuk dijalankan dengan hak non-root secara default.

Persyaratan akses

Semua produk berbasis kontainer harus mematuhi persyaratan akses berikut:

  • Produk berbasis kontainer harus menggunakan kata sandi acak awal. Produk berbasis kontainer tidak boleh menggunakan kata sandi tetap atau kosong awal untuk akses administratif eksternal (misalnya, untuk masuk ke aplikasi melalui antarmuka web). Pembeli harus diminta untuk kata sandi acak ini sebelum diizinkan untuk mengatur atau mengubah kredensialnya sendiri.

  • Setiap akses dari luar ke aplikasi harus secara eksplisit disetujui dan diaktifkan oleh pelanggan.

Persyaratan informasi pelanggan

Semua produk berbasis kontainer harus mematuhi persyaratan informasi pelanggan berikut:

  • Perangkat lunak tidak boleh mengumpulkan atau mengekspor data pelanggan tanpa sepengetahuan pelanggan dan persetujuan tegas kecuali sebagaimana disyaratkan oleh BYOL (Bring Your Own License). Aplikasi yang mengumpulkan atau mengekspor data pelanggan harus mengikuti pedoman ini:

    • Pengumpulan data pelanggan harus swalayan, otomatis, dan aman. Pembeli tidak perlu menunggu penjual menyetujui untuk menyebarkan perangkat lunak.

    • Persyaratan untuk data pelanggan harus dinyatakan dengan jelas dalam deskripsi atau petunjuk penggunaan daftar. Ini termasuk apa yang dikumpulkan, lokasi di mana data pelanggan akan disimpan, dan bagaimana data itu akan digunakan. Misalnya, Produk ini mengumpulkan nama dan alamat email Anda. Informasi ini dikirim ke dan disimpan oleh<company name>. Informasi ini hanya akan digunakan untuk menghubungi pembeli sehubungan dengan. <product name>

    • Informasi pembayaran tidak boleh dikumpulkan.

Persyaratan penggunaan produk

Semua produk berbasis kontainer harus mematuhi persyaratan penggunaan produk berikut:

  • Penjual hanya bisa mencantumkan produk yang berfungsi penuh. Produk beta atau prarilis untuk tujuan uji coba atau evaluasi tidak diperbolehkan. Pengembang, komunitas, dan edisi BYOL perangkat lunak komersial didukung jika penjual menyediakan versi berbayar yang setara AWS Marketplace dalam waktu 90 hari setelah menyediakan edisi gratis.

  • Semua petunjuk penggunaan produk berbasis kontainer harus meliputi semua langkah untuk men-deploy produk berbasis kontainer. Petunjuk penggunaan harus menyediakan perintah dan sumber daya deployment yang menunjuk ke citra kontainer yang sesuai pada AWS Marketplace.

  • Produk berbasis kontainer harus meliputi semua citra kontainer yang dibutuhkan pelanggan untuk menggunakan perangkat lunak. Selain itu, produk berbasis kontainer tidak boleh mengharuskan pengguna untuk meluncurkan produk menggunakan gambar apa pun dari luar AWS Marketplace (misalnya, gambar kontainer dari repositori pihak ketiga).

  • Kontainer dan perangkat lunaknya harus dapat digunakan dengan cara swalayan dan tidak boleh memerlukan metode atau biaya pembayaran tambahan. Aplikasi yang memerlukan dependensi eksternal pada penerapan harus mengikuti pedoman ini:

    • Persyaratan harus diungkapkan dalam deskripsi atau petunjuk penggunaan daftar. Misalnya, Produk ini memerlukan koneksi internet untuk digunakan dengan benar. Paket-paket berikut diunduh saat penerapan:. <list of package>

    • Penjual bertanggung jawab atas penggunaan dan memastikan ketersediaan dan keamanan semua dependensi eksternal.

    • Jika dependensi eksternal tidak lagi tersedia, produk harus dihapus AWS Marketplace juga.

    • Dependensi eksternal tidak boleh memerlukan metode atau biaya pembayaran tambahan.

  • Kontainer yang memerlukan koneksi berkelanjutan ke sumber daya eksternal yang tidak berada di bawah kendali langsung pembeli—misalnya, API eksternal atau AWS layanan dikelola oleh penjual atau pihak ketiga—harus mengikuti pedoman ini:

    • Persyaratan harus diungkapkan dalam deskripsi atau petunjuk penggunaan daftar. Misalnya, Produk ini membutuhkan koneksi internet yang berkelanjutan. Layanan eksternal yang sedang berlangsung berikut ini diperlukan untuk berfungsi dengan baik:. <list of resources>

    • Penjual bertanggung jawab atas penggunaan dan memastikan ketersediaan dan keamanan semua sumber daya eksternal.

    • Jika sumber daya eksternal tidak lagi tersedia, produk harus dihapus AWS Marketplace juga.

    • Sumber daya eksternal tidak boleh memerlukan metode atau biaya pembayaran tambahan dan pengaturan koneksi harus otomatis.

  • Perangkat lunak produk dan metadata tidak boleh berisi bahasa yang mengarahkan pengguna ke platform cloud lain, produk tambahan, atau layanan upsell yang tidak tersedia di AWS Marketplace.

  • Jika produk Anda merupakan add-on untuk produk lain atau produk ISV lain, deskripsi produk Anda harus menunjukkan bahwa itu memperluas fungsionalitas produk lain dan bahwa tanpanya, produk Anda memiliki utilitas yang sangat terbatas. Misalnya, Produk ini memperluas fungsionalitas dan tanpa itu, produk ini memiliki utilitas yang sangat terbatas<product name>. Harap dicatat bahwa mungkin memerlukan lisensi sendiri untuk fungsionalitas penuh dengan daftar ini. <product name>

Persyaratan arsitektur

Semua produk berbasis kontainer harus mematuhi persyaratan arsitektur berikut:

  • Gambar kontainer sumber untuk AWS Marketplace harus didorong ke repositori Amazon Elastic Container Registry (Amazon ECR) yang dimiliki oleh. AWS Marketplace Anda dapat membuat repositori ini di produk server Portal Manajemen AWS Marketplace bawah untuk setiap daftar produk kontainer Anda.

  • Citra kontainer harus didasarkan pada Linux.

  • Produk berbasis kontainer berbayar harus dapat digunakan di Amazon ECS, Amazon EKS, atau. AWS Fargate

  • Produk berbasis kontainer berbayar dengan harga kontrak dan integrasi dengan AWS License Manager harus diterapkan di Amazon EKS, Amazon ECS, Amazon EKS AWS Fargate Anywhere, Amazon ECS Anywhere, OpenShift Red Hat Service AWS on (ROSA), cluster Kubernetes yang dikelola sendiri di lokasi, atau di Amazon Elastic Compute Cloud.

Petunjuk penggunaan produk kontainer

Saat membuat petunjuk penggunaan untuk produk kontainer Anda, ikuti langkah-langkah dan panduan diAMI dan petunjuk penggunaan produk kontainer.

Persyaratan untuk produk add-on Amazon EKS

Add-on Amazon EKS adalah perangkat lunak yang menyediakan kemampuan operasional untuk Kubernetes aplikasi tetapi tidak spesifik untuk aplikasi. Misalnya, add-on Amazon EKS menyertakan agen observabilitas atau Kubernetes driver yang memungkinkan klaster berinteraksi dengan AWS sumber daya dasar untuk jaringan, komputasi, dan penyimpanan.

Sebagai penjual produk kontainer, Anda dapat memilih di antara beberapa opsi penerapan termasuk Amazon EKS. Anda dapat mempublikasikan versi produk Anda sebagai AWS Marketplace add-on ke dalam katalog add-on Amazon EKS. Add-on Anda muncul di konsol Amazon EKS di samping add-on yang dikelola oleh AWS dan vendor lain. Pembeli Anda dapat menggunakan perangkat lunak Anda sebagai add-on semudah mereka melakukan add-on lainnya.

Untuk informasi selengkapnya, lihat add-on Amazon EKS di Panduan Pengguna Amazon EKS.

Mempersiapkan produk kontainer Anda sebagai AWS Marketplace add-on

Untuk mempublikasikan produk kontainer Anda sebagai AWS Marketplace add-on, produk tersebut harus memenuhi persyaratan berikut:

  • Produk kontainer Anda harus dipublikasikan di AWS Marketplace.

  • Produk kontainer Anda harus dibuat kompatibel untuk arsitektur AMD64 dan ARM64.

  • Produk kontainer Anda tidak boleh menggunakan model harga Bring Your Own License (BYOL).

    catatan

    BYOL tidak didukung untuk pengiriman add-on Amazon EKS.

  • Anda harus mematuhi semua persyaratan produk berbasis kontainer termasuk memasukkan semua gambar dan Helm bagan kontainer ke dalam repositori AWS Marketplace Amazon ECR yang dikelola. Persyaratan ini mencakup gambar sumber terbuka, misalnya,nginx. Gambar dan bagan tidak dapat di-host di repositori eksternal lainnya termasuk, namun tidak terbatas pada, Galeri Publik Amazon ECR, Docker Hub dan. Quay

  • Helmgrafik - Siapkan perangkat lunak Anda untuk digunakan melalui Helm bagan. Kerangka kerja add-on Amazon EKS mengubah Helm bagan menjadi manifes. Beberapa Helm fitur tidak didukung dalam sistem Amazon EKS. Daftar berikut menjelaskan persyaratan yang harus dipenuhi sebelum orientasi. Dalam daftar ini, semua Helm perintah menggunakan Helm versi 3.8.1:

    • Semua Capabilities objek didukung, dengan pengecualian untuk.APIVersions. .APIVersionstidak didukung untuk Kubernetes API non-built-in khusus.

    • Hanya Release.Namespace objek Release.Name dan yang didukung.

    • Helmkait dan lookup fungsinya tidak didukung.

    • Semua grafik dependen harus ditempatkan di dalam Helm bagan utama (ditentukan dengan file jalur repositori://...).

    • HelmBagan harus berhasil melewati Helm Lint dan Helm Template tanpa kesalahan. Perintahnya adalah sebagai berikut:

      • HelmSerat — helm lint helm-chart

        Masalah umum termasuk bagan yang tidak dideklarasikan dalam metadata bagan induk. Misalnya, chart metadata is missing these dependencies: chart-base Error: 1 chart(s) linted, 1 chart(s) failed

      • HelmTemplate - helm template chart-name chart-location —set k8version=Kubernetes-version —kube-version Kubernetes-version —namespace addon-namespace —include-crds —no-hooks —f any-overriden-values

        Lewati konfigurasi yang diganti dengan bendera. —f

    • Simpan semua binari kontainer di repo AWS Marketplace Amazon ECR. Untuk membuat manifes, gunakan perintah Helm template yang ditampilkan sebelumnya. Cari manifes untuk referensi gambar eksternal seperti busybox atau gcr gambar. Unggah semua gambar kontainer bersama dengan dependensi ke repo AWS Marketplace Amazon ECR yang dibuat dengan menggunakan opsi Add Repository di dropdown permintaan.

  • Konfigurasi kustom - Anda dapat menambahkan variabel kustom selama penerapan. Untuk informasi tentang cara mengidentifikasi pengalaman pengguna akhir, beri nama perangkat lunakaws_mp_configuration_schema.json, dan paket ke dalam pembungkus dengan Helm bagan, lihat Amazon EKS add-ons: Advanced configuration.

    Menurut Kata Kunci “$schema”, $schema harus berupa URI yang menunjuk ke sumber daya yang validapplication/schema+json.

    File ini tidak boleh menerima informasi sensitif apa pun seperti kata sandi, kunci lisensi, dan sertifikat.

    Untuk menangani rahasia dan instalasi sertifikat, Anda dapat memberikan langkah-langkah instalasi pasca atau Pra-Add-on kepada pengguna akhir. Produk tidak boleh bergantung pada lisensi eksternal apa pun. Produk harus bekerja berdasarkan AWS Marketplace hak.

    Untuk informasi selengkapnya tentang batasanaws_mp_configuration_schema.json, lihatPersyaratan konfigurasi add-on dan praktik terbaik untuk penyedia add-on.

  • Identifikasi dan buat namespace tempat perangkat lunak akan digunakan - Dalam rilis pertama produk Anda, Anda harus mengidentifikasi namespace tempat perangkat lunak akan digunakan dengan menambahkan namespace templat.

  • Buat serviceAccount jika berlaku — Jika perangkat lunak adalah perangkat lunak berbayar AWS Marketplace atau harus terhubung dengan yang lain AWS layanan, pastikan Helm bagan dibuat secara serviceAccount default. Jika serviceAccount kreasi ditangani oleh parameter dalam values.yaml file, atur nilai parameter ketrue. Misalnya, serviceAccount.create = true. Ini diperlukan karena pelanggan mungkin memilih untuk menginstal add-on dengan mewarisi izin dari instance node yang mendasarinya yang sudah memiliki izin yang diperlukan. Jika bagan Helm tidak membuatserviceAccount, maka izin tidak dapat dikaitkan dengan. serviceAccount

  • Penerapan atau Daemonset yang Dapat Dilacak — Pastikan bagan Helm Anda memiliki daemonset atau penerapan. Kerangka addon Amazon EKS melacak penerapan sumber daya Amazon EKS Anda yang menggunakannya. Tanpa penerapan atau daemonset yang dapat dilacak, addon Anda akan menghadapi kesalahan penerapan. Jika addon Anda tidak memiliki deployment atau daemonset, misalnya, jika addon Anda menerapkan sekumpulan sumber daya Kustom atau pekerjaan Kubernetes yang tidak dapat dilacak, tambahkan deployment dummy atau objek daemonset.

  • Support untuk arsitektur AMD dan ARM — Banyak pelanggan Amazon EKS menggunakan ARM64 hari ini untuk menggunakan instans AWS Graviton. Perangkat lunak pihak ketiga harus mendukung kedua arsitektur.

  • Integrasikan dengan API lisensi atau pengukuran dari AWS Marketplace — AWS Marketplace mendukung beberapa model penagihan. Untuk informasi selengkapnya, lihat Integrasi penagihan, pengukuran, dan lisensi produk kontainer. Jika Anda ingin menjual produk Anda melalui mekanisme PAYG, lihatPengukuran khusus untuk produk kontainer dengan AWS Marketplace Metering Service. Jika Anda ingin menjual produk Anda melalui model dimuka atau kontrak, lihatHarga kontrak untuk produk Kontainer dengan AWS License Manager.

  • Unggah perangkat lunak dan semua artefak dan dependensi — Bagan Helm harus mandiri, dan tidak boleh memerlukan dependensi dari sumber eksternal, misalnya,. GitHub Jika perangkat lunak memerlukan dependensi eksternal, maka dependensi harus didorong ke repositori AWS Marketplace Amazon ECR pribadi di bawah daftar yang sama. AWS Marketplace

  • Berikan instruksi penerapan di situs web Anda — Kami meminta Anda meng-host panduan penyebaran bagi pelanggan untuk mengidentifikasi cara menerapkan perangkat lunak Anda melalui perintah create-addon.

  • Peran IAM — Daftar semua kebijakan AWS Identity and Access Management (IAM) yang diperlukan agar perangkat lunak Anda berfungsi atau terhubung dengan yang lain. AWS layanan

  • Pembaruan versi — Amazon EKS merilis versi Kubernetes baru beberapa minggu setelah rilis upstream. Karena versi cluster Amazon EKS baru tersedia secara umum, vendor memiliki waktu 45 hari untuk mengesahkan atau memperbarui perangkat lunak mereka agar kompatibel dengan rilis versi cluster Amazon EKS yang baru. Jika versi add-on Anda saat ini mendukung versi Kubernetes yang baru, validasi dan sertifikasi yang sama sehingga kami dapat memperbarui matriks kompatibilitas versi. Jika versi add-on baru diperlukan untuk mendukung rilis versi Kubernetes yang baru, silakan kirimkan versi baru untuk orientasi.

  • Perangkat lunak mitra harus termasuk dalam salah satu jenis berikut atau menjadi perangkat lunak operasional yang akan meningkatkan Kubernetes atau Amazon EKS: Gitops | monitoring | logging | cert-management | policy-management | cost-management | autoscaling | storage | kubernetes-management | service-mesh | dll-backup | | load-balancer | lokal-registry| jaringan | Keamanan | backup | ingress-controller | observability ingress-service-type

  • Perangkat lunak tidak dapat berupa Container Network Interface (CNI).

  • Perangkat lunak harus dijual melalui AWS Marketplace dan terintegrasi dengan API Lisensi dan pengukuran untuk produk berbayar. Produk BYOL tidak diterima.

Persyaratan konfigurasi add-on dan praktik terbaik untuk penyedia add-on

Amazon EKS memerlukan konfigurasi sebagai string skema Helm JSON dari penyedia add-on. Pengaya yang memerlukan konfigurasi yang diperlukan atau mengizinkan konfigurasi opsional harus menyertakan aws_mp_configuration_schema.json file dengan Bagan Helm yang dikirimkan ke. AWS Marketplace Amazon EKS akan menggunakan skema ini untuk memvalidasi input konfigurasi dari pelanggan dan menolak panggilan API dengan nilai input yang tidak sesuai dengan skema. Konfigurasi add-on biasanya termasuk dalam dua kategori:

  • Konfigurasi untuk properti Kubernetes umum seperti label, toleransi, nodeSelector, dll.

  • Konfigurasi yang khusus add-on seperti kunci lisensi, pemberdayaan fitur, URL, dll.

Bagian ini difokuskan pada kategori pertama yang terkait dengan properti Kubernetes umum.

Amazon EKS merekomendasikan mengikuti praktik terbaik seputar konfigurasi add-on Amazon EKS.

Persyaratan skema

Saat mendefinisikan skema json, pastikan Anda menggunakan versi jsonschema yang didukung oleh add-on Amazon EKS.

Daftar skema yang didukung:

  • https://json-schema.org/draft-04/schema

  • https://json-schema.org/draft-06/schema

  • https://json-schema.org/draft-07/schema

  • https://json-schema.org/draft/2019-09/schema

Menggunakan versi skema json lainnya tidak kompatibel dengan add-on Amazon EKS dan akan menyebabkan add-on tidak dapat dirilis hingga ini diperbaiki.

Contoh file skema Helm

{ "$schema": "http://json-schema.org/schema#", "type": "object", "properties": { "podAnnotations": { "description": "Pod Annotations" "type": "object" }, "podLabels": { "description": "Pod Labels" "type": "string" }, "resources": { "type": "object" "description": "Resources" }, "logLevel": { "description": "Logging Level" "type": "string", "enum": [ "info", "debug" ] }, "config": { "description": "Custom Configuration" "type": "object" } } }
camelCase

Parameter konfigurasi harus menjadi CamelCase, dan akan ditolak jika tidak mengikuti format ini.

Deskripsi diperlukan

Selalu sertakan deskripsi yang bermakna untuk properti skema. Deskripsi ini akan digunakan untuk merender nama label di konsol Amazon EKS untuk setiap parameter konfigurasi.

Definisi RBAC

Penyedia add-on perlu mendefinisikan dan menyediakan izin RBAC yang diperlukan untuk berhasil menginstal add-on menggunakan prinsip hak istimewa paling sedikit. Jika izin RBAC perlu diubah untuk versi add-on yang lebih baru atau perbaikan apa pun untuk mengatasi CVE, penyedia add-on perlu memberi tahu tim Amazon EKS tentang perubahan ini. Izin yang diperlukan untuk setiap sumber daya Kubernetes harus dibatasi pada nama sumber daya objek.

apiGroups: ["apps"] resources: ["daemonsets"] resourceNames: ["ebs-csi-node"] verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]
Manajemen Rahasia

Bagian ini hanya berlaku untuk add-on yang membutuhkan pelanggan untuk mengonfigurasi informasi rahasia seperti kunci aplikasi, kunci API, kata sandi, dll. Saat ini, Amazon EKS API tidak mendukung penyampaian informasi rahasia dalam teks biasa karena implikasi keamanan. Namun, pelanggan dapat menggunakan konfigurasi untuk meneruskan nama Rahasia Kubernetes yang menyimpan kunci yang dibutuhkan oleh add-on. Pelanggan akan diminta untuk membuat objek Kubernetes Secret yang berisi kunci dengan namespace yang sama sebagai langkah prasyarat dan kemudian meneruskan nama Secret menggunakan gumpalan konfigurasi saat membuat add-on. Kami menyarankan agar penyedia add-on memberi nama properti skema sehingga pelanggan tidak secara tidak sengaja salah mengira itu sebagai kunci yang sebenarnya. Misalnya: appSecretName, connectionSecretName dll.

Singkatnya, penyedia add-on dapat memanfaatkan skema untuk memungkinkan pelanggan melewati nama rahasia tetapi bukan kunci yang benar-benar akan menyimpan rahasia itu sendiri.

Contoh nilai konfigurasi

Anda dapat menyertakan contoh konfigurasi dalam skema Anda untuk membantu pelanggan dengan konfigurasi add-on. Contoh berikut adalah dari skema AWS Distro untuk OpenTelemetry add-on.

"examples": [ { "admissionWebhooks": { "namespaceSelector": {}, "objectSelector": {} }, "affinity": {}, "collector": { "amp": { "enabled": true, "remoteWriteEndpoint": "https://aps-workspaces.us-west-2.amazonaws.com/workspaces/ws-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/api/v1/remote_write" }, "cloudwatch": { "enabled": true }, "mode": "deployment", "replicas": 1, "resources": { "limits": { "cpu": "256m", "memory": "512Mi" }, "requests": { "cpu": "64m", "memory": "128Mi" } }, "serviceAccount": { "annotations": {}, "create": true, "name": "adot-collector" }, "xray": { "enabled": true } }, "kubeRBACProxy": { "enabled": true, "resources": { "limits": { "cpu": "500m", "memory": "128Mi" }, "requests": { "cpu": "5m", "memory": "64Mi" } } }, "manager": { "env": {}, "resources": { "limits": { "cpu": "100m", "memory": "128Mi" }, "requests": { "cpu": "100m", "memory": "64Mi" } } }, "nodeSelector": {}, "replicaCount": 1, "tolerations": [] } ]

Parameter umum yang diizinkan untuk konfigurasi

Berikut ini adalah parameter yang direkomendasikan dalam file skema Helm yang dihadapi pelanggan.

Parameter Deskripsi Harus memiliki default?
TambahanAllabels Tambahkan label Kubernetes ke semua objek Kubernetes yang dikelola oleh add-on. Tidak
Penambahananannotasi Tambahkan anotasi Kubernetes ke semua objek Kubernetes yang dikelola oleh add-on. Tidak
PodLabel Tambahkan label Kubernetes ke pod yang dikelola oleh add-on. Tidak
PodAnnotations Tambahkan anotasi Kubernetes ke pod yang dikelola oleh add-on. Tidak
logLevel Tingkat log untuk komponen yang dikelola oleh add-on. Ya
NodeSelector Bentuk kendala pemilihan simpul yang direkomendasikan paling sederhana. Anda dapat menambahkan field nodeSelector ke spesifikasi Pod Anda dan menentukan label node yang Anda inginkan untuk dimiliki oleh node target. Berpotensi, misalnya node Linux saja
toleransi Toleransi diterapkan pada polong. Toleransi memungkinkan scheduler untuk menjadwalkan pod dengan taints yang cocok. Toleransi memungkinkan penjadwalan tetapi tidak menjamin penjadwalan. Mungkin, lebih umum dengan daemonset
afinitas Fitur afinitas terdiri dari dua jenis afinitas: Fungsi afinitas node seperti bidang NodeSelector tetapi lebih ekspresif dan memungkinkan Anda untuk menentukan aturan lunak, afinitas/anti-afinitas antar Pod memungkinkan Anda untuk membatasi Pod terhadap label pada Pod lain. Mungkin
topologi SpreadConstraints Anda dapat menggunakan batasan penyebaran topologi untuk mengontrol bagaimana Pod tersebar di seluruh klaster Anda di antara domain kegagalan seperti wilayah, zona, node, dan domain topologi yang ditentukan pengguna lainnya. Ini dapat membantu mencapai ketersediaan tinggi serta pemanfaatan sumber daya yang efisien. Mungkin
permintaan/batas sumber daya Tentukan berapa banyak cpu/memori yang dibutuhkan setiap wadah. Permintaan sangat disarankan untuk diatur. Batas bersifat opsional. Ya
replika Jumlah replika pod yang dikelola oleh add-on. Tidak berlaku untuk daemonset. Ya
catatan

Untuk parameter konfigurasi penjadwalan beban kerja, Anda mungkin perlu memisahkan komponen tingkat atas dalam Skema jika diperlukan. Contoh, driver Amazon EBS CSI berisi dua komponen utama, controller dan node agent - pelanggan memerlukan pemilih simpul/toleransi yang berbeda untuk setiap komponen.

catatan

Nilai default yang didefinisikan dalam skema JSON murni untuk tujuan dokumentasi pengguna saja dan tidak menggantikan kebutuhan untuk memiliki default yang sah dalam file. values.yaml Jika menggunakan properti default, pastikan bahwa default dalam values.yaml cocok dengan skema dan dua artefak (values.schema.jsondanvalues.yaml) tetap sinkron setiap kali perubahan dilakukan pada Bagan Helm.

"affinity": { "default": { "affinity": { "nodeAffinity": { "preferredDuringSchedulingIgnoredDuringExecution": [ { "preference": { "matchExpressions": [ { "key": "eks.amazonaws.com/compute-type", "operator": "NotIn", "values": [ "fargate" ] } ] }, "weight": 1 } ] }, "podAntiAffinity": { "preferredDuringSchedulingIgnoredDuringExecution": [ { "podAffinityTerm": { "labelSelector": { "matchExpressions": [ { "key": "app", "operator": "In", "values": [ "ebs-csi-controller" ] } ] }, "topologyKey": "kubernetes.io/hostname" }, "weight": 100 } ] } } }, "description": "Affinity of the controller pod", "type": [ "object", "null" ] }

Parameter umum yang tidak diizinkan untuk konfigurasi

Parameter metadata cluster seperticlusterName,,region, vpcIdaccountId, dan lainnya mungkin diperlukan oleh berbagai add-on (misalnya, Elastic Load Balancing Controller). Parameter apa pun yang mirip dengan ini yang diketahui oleh layanan Amazon EKS akan secara otomatis disuntikkan oleh add-on Amazon EKS, dan tidak bertanggung jawab pengguna untuk menentukan sebagai opsi konfigurasi. Parameter ini meliputi:

  • AWS wilayah

  • Nama cluster Amazon EKS

  • ID VPC dari cluster

  • Registri kontainer, khusus untuk akun build-prod, yang digunakan oleh add-on jaringan

  • IP cluster DNS, khusus untuk add-on coredns

  • Titik akhir API kluster Amazon EKS

  • IPv4 diaktifkan pada cluster

  • IPv6 diaktifkan pada cluster

  • Delegasi awalan untuk IPv6 diaktifkan pada cluster

Penyedia add-on perlu memastikan Anda memiliki template yang ditentukan untuk parameter yang berlaku tersebut. Masing-masing parameter di atas akan memiliki parameterType atribut yang telah ditentukan sebelumnya yang ditentukan oleh Amazon EKS. Metadata rilis akan menentukan pemetaan antara parameterType dan nama/jalur parameter dalam template. Dengan cara ini, nilai dapat diteruskan secara dinamis oleh Amazon EKS tanpa mengharuskan pelanggan untuk menentukannya melalui konfigurasi dan juga memberikan fleksibilitas kepada penyedia add-on untuk menentukan nama/jalur template mereka sendiri. Parameter seperti di atas yang perlu disuntikkan Amazon EKS secara dinamis harus dikecualikan dari file skema.

Contoh pemetaan dari metadata rilis

"defaultConfiguration": [ { "key": "image.containerRegistry", "parameterType": "CONTAINER_REGISTRY" } ]

Berikut ini adalah parameter yang tidak disarankan untuk dapat dikonfigurasi dalam file skema Helm yang dihadapi pelanggan. Entah parameter harus memiliki default yang tidak dapat dimodifikasi, atau tidak disertakan sama sekali dalam template add-on.

Parameter Deskripsi Harus memiliki default?
gambar Container image yang akan di-deploy pada cluster Kubernetes. Tidak, dikelola melalui definisi add-on
gambar PullSecrets Mengkonfigurasi pod untuk menggunakan rahasia untuk menarik dari registri pribadi. N/A
LivenessProbe Proses Kubelet menggunakan liveness probe untuk mengetahui kapan harus me-restart sebuah container. Misalnya, liveness probe dapat menangkap kebuntuan, di mana aplikasi sedang berjalan, tetapi tidak dapat membuat kemajuan. Memulai ulang wadah dalam keadaan seperti itu dapat membantu membuat aplikasi lebih tersedia meskipun ada bug. Ya
ReadinessProbe Penting bahwa Anda memiliki probe kesiapan untuk wadah Anda. Dengan cara ini proses Kubelet yang berjalan di pesawat data Anda akan tahu kapan container siap melayani lalu lintas. Sebuah Pod dianggap siap ketika semua kontainernya sudah siap. Salah satu penggunaan sinyal ini adalah untuk mengontrol Pod mana yang digunakan sebagai backend untuk Layanan. Ketika sebuah Pod tidak siap, Pod akan dihapus dari Service load balancer. Ya
StartupProbe Kubelet menggunakan probe startup untuk mengetahui kapan aplikasi container telah dimulai. Jika probe seperti itu dikonfigurasi, itu menonaktifkan pemeriksaan keaktifan dan kesiapan hingga berhasil, memastikan probe tersebut tidak mengganggu startup aplikasi. Ini dapat digunakan untuk mengadopsi pemeriksaan keaktifan pada kontainer awal yang lambat, menghindari mereka dibunuh oleh kubelet sebelum mereka aktif dan berjalan. Opsional
polong DisruptionBudget Tentukan Pod Discruption Budget (PDB) untuk memastikan jumlah minimum POD tetap berjalan selama gangguan sukarela. PDB membatasi jumlah Pod dari aplikasi yang direplikasi yang turun secara bersamaan dari gangguan sukarela. Misalnya, aplikasi berbasis kuorum ingin memastikan bahwa jumlah replika yang berjalan tidak pernah dibawa di bawah angka yang dibutuhkan untuk kuorum. Front end web mungkin ingin memastikan bahwa jumlah replika yang melayani beban tidak pernah turun di bawah persentase tertentu dari total. Ya, jika default ke lebih dari dua replika
ServiceAccount (nama) Nama pod akun layanan akan berjalan di bawah. Ya
ServiceAccount (anotasi) Anotasi diterapkan ke akun layanan. Biasanya digunakan untuk fitur IAM Roles for Service Accounts Tidak, peran akun layanan IAM ARN diatur di API add-on Amazon EKS tingkat atas. Pengecualian untuk aturan ini adalah jika add-on Anda memiliki beberapa penerapan/pengontrol (seperti Flux) dan memerlukan ARN peran IRSA yang terpisah.
prioritas ClassName Prioritas menunjukkan pentingnya sebuah Pod relatif terhadap Pod lainnya. Jika Pod tidak dapat dijadwalkan, scheduler akan mencoba untuk mencegah (mengusir) Pod prioritas yang lebih rendah untuk memungkinkan penjadwalan Pod yang tertunda. Ya. Sebagian besar add-on sangat penting untuk fungsionalitas cluster, dan harus memiliki kelas prioritas yang ditetapkan secara default.
polong SecurityContext Konteks keamanan mendefinisikan pengaturan hak istimewa dan kontrol akses untuk Pod atau Container. Biasanya digunakan untuk mengatur FSGroup - yang diperlukan untuk IRSA di v1.19 dan cluster yang lebih rendah. Tidak mungkin, mengingat Amazon EKS tidak lagi mendukung Kubernetes v1.19
SecurityContext Konteks keamanan mendefinisikan pengaturan hak istimewa dan kontrol akses untuk Pod atau Container. Ya
UpdateStrategy Menentukan strategi yang digunakan untuk mengganti Pod lama dengan yang baru. Ya
NameOverride Ganti nama pod. Tidak
polong SecurityPolicy

Menegakkan pembatasan pada parameter.

Tidak - PSP tidak digunakan lagi
VolumeMountstambahan/ekstravolumes

Digunakan untuk IRSA di cluster EKS non Amazon.

Tidak