Це багатосторінковий друкований вигляд цього розділу. Натисність щоб друкувати.

Повернутися до звичайного перегляду сторінки.

Відомі мітки, анотації та позначки taint

    Kubernetes резервує всі мітки, анотації та позначки taint у просторах імен kubernetes.io і k8s.io.

    Цей документ слугує як довідником значень, так і точкою координації для їх призначення.

    Мітки, анотації та позначки taint, що використовуються в обʼєктах API

    apf.kubernetes.io/autoupdate-spec

    Тип: Annotation

    Приклад: apf.kubernetes.io/autoupdate-spec: "true"

    Використовується для: Обʼєктів FlowSchema та PriorityLevelConfiguration

    Якщо ця анотація встановлена в значення true для FlowSchema або PriorityLevelConfiguration, то spec для цього обʼєкта управляється kube-apiserver. Якщо API-сервер не розпізнає обʼєкт APF, а ви анотуєте його для автоматичного оновлення, API-сервер видаляє весь обʼєкт. В іншому випадку API-сервер не управляє специфікацією обʼєкта. Докладніше читайте Обслуговування обовʼязкових та рекомендованих обʼєктів конфігурації.

    app.kubernetes.io/component

    Тип: Label

    Приклад: app.kubernetes.io/component: "database"

    Використовується для: Всі обʼєкти (зазвичай використовується на ресурсах робочого навантаження).

    Компонент в архітектурі застосунку.

    Одна з рекомендованих міток.

    app.kubernetes.io/created-by (deprecated)

    Тип: Label

    Приклад: app.kubernetes.io/created-by: "controller-manager"

    Використовується для: Всі обʼєкти (зазвичай використовується на ресурсах робочого навантаження).

    Контролер/користувач, який створив цей ресурс.

    Примітка:

    Починаючи з v1.9, ця мітка є застарілою.

    app.kubernetes.io/instance

    Тип: Label

    Приклад: app.kubernetes.io/instance: "mysql-abcxyz"

    Використовується для: Всі обʼєкти (зазвичай використовується на ресурсах робочого навантаження).

    Унікальне імʼя, що ідентифікує екземпляр застосунку. Для призначення неунікального імені використовуйте app.kubernetes.io/name.

    Одна з рекомендованих міток.

    app.kubernetes.io/managed-by

    Тип: Label

    Приклад: app.kubernetes.io/managed-by: "helm"

    Використовується для: Всі обʼєкти (зазвичай використовується на ресурсах робочого навантаження).

    Інструмент, що використовується для управління роботою застосунку.

    Одна з рекомендованих міток.

    app.kubernetes.io/name

    Тип: Label

    Приклад: app.kubernetes.io/name: "mysql"

    Використовується для: Всі обʼєкти (зазвичай використовується на ресурсах робочого навантаження).

    Назва застосунку.

    Одна з рекомендованих міток.

    app.kubernetes.io/part-of

    Тип: Label

    Приклад: app.kubernetes.io/part-of: "wordpress"

    Використовується для: Всі обʼєкти (зазвичай використовується на ресурсах робочого навантаження).

    Назва застосунку вищого рівня, частиною якого є цей обʼєкт.

    Одна з рекомендованих міток.

    app.kubernetes.io/version

    Тип: Label

    Приклад: app.kubernetes.io/version: "5.7.21"

    Використовується для: Всі обʼєкти (зазвичай використовується на ресурсах робочого навантаження).

    Поточна версія застосунку.

    Загальні форми значень включають:

    Одна з рекомендованих міток.

    applyset.kubernetes.io/additional-namespaces (alpha)

    Тип: Annotation

    Приклад: applyset.kubernetes.io/additional-namespaces: "namespace1,namespace2"

    Використовується для: Обʼєкти, які використовуються як батьки ApplySet.

    Використання цієї анотації є альфа-версією. Для Kubernetes версії 1.37 ви можете використовувати цю анотацію на Secrets, ConfigMaps або власних ресурсах, якщо CustomResourceDefinition, що їх визначає, має мітку applyset.kubernetes.io/is-parent-type.

    Частина специфікації, яка використовується для реалізації обрізки на основі ApplySet в kubectl. Ця анотація застосовується до батьківського обʼєкта, який використовується для відстеження ApplySet для розширення області застосування ApplySet поза власним простором імен батьківського обʼєкта (якщо є). Значення — це розділений комами список імен просторів імен, відмінних від простору імен батьківського обʼєкта, в яких знаходяться обʼєкти.

    applyset.kubernetes.io/contains-group-kinds (alpha)

    Тип: Annotation

    Приклад: applyset.kubernetes.io/contains-group-kinds: "certificates.cert-manager.io,configmaps,deployments.apps,secrets,services"

    Використовується для: Обʼєкти, які використовуються як батьки ApplySet.

    Використання цієї анотації є альфа-версією. Для Kubernetes версії 1.37 ви можете використовувати цю анотацію на Secrets, ConfigMaps або власних ресурсах, якщо CustomResourceDefinition, що їх визначає, має мітку applyset.kubernetes.io/is-parent-type.

    Частина специфікації, яка використовується для реалізації обрізки на основі ApplySet в kubectl. Ця анотація застосовується до батьківського обʼєкта, який використовується для відстеження ApplySet для оптимізації списку обʼєктів-членів ApplySet. Не є обовʼязковою у специфікації ApplySet, оскільки інструменти можуть виконувати виявлення або використовувати іншу оптимізацію. Однак, починаючи з версії Kubernetes 1.37, kubectl вимагає її наявності. Якщо вона присутня, значення цієї анотації має бути розділеним комами списком group-kind у форматі повної назви, тобто <resource>.<group>.

    applyset.kubernetes.io/contains-group-resources (deprecated)

    Тип: Annotation

    Приклад: applyset.kubernetes.io/contains-group-resources: "certificates.cert-manager.io,configmaps,deployments.apps,secrets,services"

    Використовується для: Обʼєкти, які використовуються як батьки ApplySet.

    Для Kubernetes версії 1.37 ви можете використовувати цю анотацію на Secrets, ConfigMaps або власних ресурсах, якщо CustomResourceDefinition, що їх визначає, має мітку applyset.kubernetes.io/is-parent-type.

    Частина специфікації, яка використовується для реалізації обрізки на основі ApplySet в kubectl. Ця анотація застосовується до батьківського обʼєкта, який використовується для відстеження ApplySet для оптимізації списку обʼєктів-членів ApplySet. Не є обовʼязковою у специфікації ApplySet, оскільки інструменти можуть виконувати виявлення або використовувати іншу оптимізацію. Однак у версії Kubernetes 1.37 kubectl вимагає її наявності. Якщо вона присутня, значення цієї анотації має бути розділеним комами списком group-kind у форматі повної назви, тобто <resource>.<group>.

    Примітка:

    Ця анотація наразі застаріла і замінена на applyset.kubernetes.io/contains-group-kinds, її підтримку буде вилучено у бета-версії applyset або GA.

    applyset.kubernetes.io/id (alpha)

    Тип: Label

    Приклад: applyset.kubernetes.io/id: "applyset-0eFHV8ySqp7XoShsGvyWFQD3s96yqwHmzc4e0HR1dsY-v1"

    Використовується для: Обʼєкти, які використовуються як батьки ApplySet.

    Використання цієї мітки є альфа-версією. Для Kubernetes версії 1.37 ви можете використовувати цю мітку на Secrets, ConfigMaps або власних ресурсах, якщо CustomResourceDefinition, що їх визначає, має мітку applyset.kubernetes.io/is-parent-type.

    Частина специфікації, яка використовується для реалізації обрізки на основі ApplySet в kubectl. Ця мітка робить обʼєкт батьківським обʼєктом ApplySet. Її значенням є унікальний ідентифікатор ApplySet, який походить від ідентифікатора самого батьківського обʼєкта. Цей ідентифікатор повинен бути кодуванням base64 (з використанням безпечного для URL кодування RFC4648) хешу group-kind-name-namespace обʼєкта, на якому він знаходиться, у вигляді: <base64(sha256(<name>.<namespace>.<kind>.<group>))>. Між значенням цієї мітки та UID обʼєкта немає звʼязку.

    applyset.kubernetes.io/is-parent-type (alpha)

    Тип: Label

    Приклад: applyset.kubernetes.io/is-parent-type: "true"

    Використовується для: Custom Resource Definition (CRD)

    Використання цієї мітки є альфа-версією. Частина специфікації, яка використовується для реалізації обрізки на основі ApplySet в kubectl. Ви можете встановити цю мітку на CustomResourceDefinition (CRD), щоб ідентифікувати тип власного ресурсу, який він визначає (а не сам CRD) як дозволеного батька для ApplySet. Єдиним допустимим значенням для цієї мітки є "true"; якщо ви хочете позначити CRD як такий, що не є дійсним батьком для ApplySets, пропустіть цю мітку.

    applyset.kubernetes.io/part-of (alpha)

    Тип: Label

    Приклад: applyset.kubernetes.io/part-of: "applyset-0eFHV8ySqp7XoShsGvyWFQD3s96yqwHmzc4e0HR1dsY-v1"

    Використовується для: Всі обʼєкти.

    Використання цієї мітки є альфа-версією. Частина специфікації, яка використовується для реалізації обрізки на основі ApplySet в kubectl. Ця мітка робить обʼєкт членом ApplySet. Значення мітки повинно збігатися зі значенням мітки applyset.kubernetes.io/id у батьківському обʼєкті.

    applyset.kubernetes.io/tooling (alpha)

    Тип: Annotation

    Приклад: applyset.kubernetes.io/tooling: "kubectl/v1.37"

    Використовується для: Обʼєкти, які використовуються як батьки ApplySet.

    Використання цієї анотації є альфа-версією. Для Kubernetes версії 1.37 ви можете використовувати цю анотацію на Secrets, ConfigMaps або власних ресурсах, якщо CustomResourceDefinition, що їх визначає, має мітку applyset.kubernetes.io/is-parent-type.

    Частина специфікації, яка використовується для реалізації обрізки на основі ApplySet в kubectl. Ця анотація застосовується до батьківського обʼєкта, який використовується для відстеження ApplySet, щоб вказати, який інструментарій керує цим ApplySet. Інструментарій повинен відмовлятися змінювати ApplySets, що належать іншим інструментам. Значення має бути у форматі <toolname>/<semver>.

    apps.kubernetes.io/pod-index (beta)

    Тип: Label

    Приклад: apps.kubernetes.io/pod-index: "0"

    Використовується для: Pod

    Коли контролер StatefulSet створює Pod для StatefulSet, він встановлює цю мітку на Pod. Значення мітки є порядковим індексом створюваного Podʼа.

    Дивіться Мітка індексу Podʼа в темі StatefulSet для отримання більш детальної інформації. Зверніть увагу, що для додавання цієї мітки до Podʼів має бути увімкнена функціональна можливість PodIndexLabel.

    resource.kubernetes.io/pod-claim-name

    Тип: Annotation

    Приклад: resource.kubernetes.io/pod-claim-name: "my-pod-claim"

    Використовується для: ResourceClaim

    Ця анотація призначається згенерованим ResourceClaim. Її значення відповідає назві заявки на ресурс у .spec будь-якого Podʼа (або Podʼів), для якого було створено ResourceClaim. У рамках динамічного виділення ресурсів функція метаданих виявлених пристроїв використовує цю анотацію для привʼязки згенерованого ResourceClaim до імені заявки Podʼа (pod.spec.resourceClaims[].name) для заявок на основі шаблонів. Цією анотацією керує Kubernetes, тому її не слід змінювати.

    cluster-autoscaler.kubernetes.io/safe-to-evict

    Тип: Annotation

    Приклад: cluster-autoscaler.kubernetes.io/safe-to-evict: "true"

    Використовується для: Pod

    Коли ця анотація має значення "true", автомасштабувальнику кластера дозволяється виселяти Pod навіть якщо інші правила зазвичай забороняють це робити. Автомасштабувальник кластера ніколи не виселяє Podʼи, для яких ця анотація явно встановлена у значення "false"; ви можете встановити це значення для важливого Podʼа, який ви хочете продовжувати виконувати. Якщо цю анотацію не задано, то автомасштабувальник кластера поводитиметься так, як він поводиться на рівні Podʼа.

    config.kubernetes.io/local-config

    Тип: Annotation

    Приклад: config.kubernetes.io/local-config: "true"

    Використовується для: Всі обʼєкти

    Ця анотація використовується у маніфестах для позначення обʼєкта як локальної конфігурації, яку не слід передавати до API Kubernetes.

    Значення "true" для цієї анотації вказує, що обʼєкт використовується лише клієнтськими інструментами і не повинен бути надісланий на API-сервер.

    Значення "false" може бути використане для вказівки, що обʼєкт повинен бути надісланий на API-сервер, навіть якщо в іншому випадку він вважався б локальним.

    Ця анотація є частиною специфікації функцій Kubernetes Resource Model (KRM), яка використовується Kustomize та подібними сторонніми інструментами. Наприклад, Kustomize видаляє обʼєкти з цією анотацією з кінцевого результату збирання.

    container.apparmor.security.beta.kubernetes.io/* (deprecated)

    Тип: Annotation

    Приклад: container.apparmor.security.beta.kubernetes.io/my-container: my-custom-profile

    Використовується для: Pods

    Ця анотація дозволяє вам вказати профіль безпеки AppArmor для контейнера в межах Podʼа Kubernetes. Починаючи з версії Kubernetes 1.30, це слід налаштовувати за допомогою поля appArmorProfile. Щоб дізнатися більше, перегляньте підручник з AppArmor. У підручнику показано, як використовувати AppArmor для обмеження можливостей і доступу контейнера.

    Вказаний профіль визначає набір правил і обмежень, яких повинен дотримуватися процес у контейнері. Це допомагає забезпечити дотримання політик безпеки та ізоляцію ваших контейнерів.

    csi.alpha.kubernetes.io/node-id (deprecated)

    Тип: Annotation

    Приклад: csi.alpha.kubernetes.io/node-id: "node-12345"

    Використовується для: VolumeAttachments

    Ця анотація записує ідентифікатор вузла, який використовує драйвер CSI, як резервний варіант, коли обʼєкт CSINode недоступний. Sidecar-контейнер external-attacher CSI заповнює її перед тим, як том буде приєднано.

    Вона забезпечує резервний механізм для відʼєднання томів, коли відповідний CSINode відсутній.

    Оскільки ця анотація застаріла, проєкт Kubernetes рекомендує не встановлювати її на VolumeAttachment або на будь-який інший обʼєкт.

    csi.volume.kubernetes.io/nodeid (deprecated)

    Тип: Annotation

    Приклад: csi.volume.kubernetes.io/nodeid: "node-12345"

    Використовується для: Nodes

    Ця анотація визначає ідентифікатор вузла, як його розуміє драйвер Container Storage Interface (CSI). kubelet заповнює цю анотацію, викликаючи метод gRPC NodeGetInfo драйвера CSI, щоб отримати ідентифікатор вузла під час реєстрації драйвера. Sidecar-контейнер external-attacher зчитує цю анотацію, щоб отримати ідентифікатор вузла під час приєднання або відʼєднання томів.

    Ця анотація застаріла на користь обʼєкта CSINode, який надає ту саму функціональність через поле spec.drivers[].nodeID.

    deployment.kubernetes.io/desired-replicas

    Тип: Annotation

    Приклад: deployment.kubernetes.io/desired-replicas: "3"

    Використовується для: ReplicaSet

    Ця анотація встановлюється контролером Deployment на ReplicaSets, якими він керує. Значення представляє бажану кількість реплік (.spec.replicas) з Deployment, якому належить цей ReplicaSet. Контролер Deployment використовує цю анотацію для відстеження бажаного стану під час послідовних оновлень та операцій масштабування.

    Це внутрішня анотація, яка використовується контролером Deployment і не повинна змінюватися вручну.

    deployment.kubernetes.io/max-replicas

    Тип: Annotation

    Приклад: deployment.kubernetes.io/max-replicas: "5"

    Використовується для: ReplicaSet

    Ця анотація встановлюється контролером Deployment на ReplicaSets, якими він керує. Значення представляє максимальну кількість реплік, яку цей ReplicaSet може мати під час послідовного оновлення. Це використовується для реалізації параметра maxSurge стратегії послідовного оновлення Deployment, який контролює, скільки додаткових Podʼів можна створити понад бажану кількість під час оновлення.

    Це внутрішня анотація, яка використовується контролером Deployment і не повинна змінюватися вручну.

    deployment.kubernetes.io/revision

    Тип: Annotation

    Приклад: deployment.kubernetes.io/revision: "2"

    Використовується для: ReplicaSet

    Ця анотація встановлюється контролером Deployment на ReplicaSets, якими він керує. Значення представляє номер ревізії Deployment. Кожного разу, коли шаблон Podʼа (.spec.template) в Deployment змінюється, номер ревізії збільшується. Ця анотація використовується для відстеження історії розгортання та дозволяє повернутися до попередніх ревізій за допомогою kubectl rollout undo.

    Номер ревізії також видно при запуску kubectl rollout history deployment/<name>.

    Це внутрішня анотація, яка використовується контролером Deployment і не повинна змінюватися вручну.

    deployment.kubernetes.io/revision-history

    Тип: Annotation

    Приклад: deployment.kubernetes.io/revision-history: "1,3"

    Використовується для: ReplicaSet

    Ця анотація встановлюється контролером Deployment на ReplicaSet, коли відкат призводить до повторного використання ReplicaSet. Значенням є список, розділений комами, усіх попередніх номерів ревізій, які ReplicaSet обслуговував для Deployment, що зберігається як історія, коли анотація deployment.kubernetes.io/revision оновлюється до нового номера ревізії.

    Це внутрішня анотація, яка використовується контролером Deployment і не повинна змінюватися вручну.

    internal.config.kubernetes.io/* (reserved prefix)

    Тип: Annotation

    Використовується для: Всі обʼєкти

    Цей префікс зарезервований для внутрішнього використання інструментами, які діють як оркестратори відповідно до специфікації функцій Моделі Ресурсів Kubernetes (KRM). Анотації з цим префіксом є внутрішніми для процесу оркестрування та не зберігаються в маніфестах у файловій системі. Іншими словами, інструмент-оркестратор повинен встановлювати ці анотації при зчитуванні файлів з локальної файлової системи та видаляти їх при записі результатів роботи функцій назад у файлову систему.

    Функція KRM не повинна змінювати анотації з цим префіксом, якщо не зазначено інше для конкретної анотації. Це дозволяє інструментам оркестрування додавати додаткові внутрішні анотації без необхідності вносити зміни в існуючі функції.

    internal.config.kubernetes.io/path

    Тип: Annotation

    Приклад: internal.config.kubernetes.io/path: "relative/file/path.yaml"

    Використовується для: Всі обʼєкти

    Ця анотація записує шлях до файлу маніфесту, з якого було завантажено обʼєкт, у вигляді розділеного слешами, незалежного від ОС, відносного шляху. Шлях є відносним до фіксованого розташування у файловій системі, визначеного інструментом-оркестратором.

    Ця анотація є частиною специфікації функцій Моделі Ресурсів Kubernetes (KRM), яка використовується Kustomize та подібними сторонніми інструментами.

    Функція KRM не повинна змінювати цю анотацію у вхідних обʼєктах, якщо вона не змінює файли, на які посилається. Функція KRM може включати цю анотацію у обʼєкти, які вона генерує.

    internal.config.kubernetes.io/index

    Тип: Annotation

    Приклад: internal.config.kubernetes.io/index: "2"

    Використовується для: Всі обʼєкти

    Ця анотація записує позицію (нумерація з нуля) YAML-документа, який містить обʼєкт, у файлі маніфесту, з якого було завантажено обʼєкт. Зазначимо, що YAML-документи розділяються трьома тире (---) і кожен може містити один обʼєкт. Якщо ця анотація не вказана, мається на увазі значення 0.

    Ця анотація є частиною специфікації функцій Моделі Ресурсів Kubernetes (KRM), яка використовується Kustomize та подібними сторонніми інструментами.

    Функція KRM не повинна змінювати цю анотацію у вхідних обʼєктах, якщо вона не змінює файли, на які посилається. Функція KRM може включати цю анотацію в обʼєкти, які вона генерує.

    kube-scheduler-simulator.sigs.k8s.io/bind-result

    Тип: Annotation

    Приклад: kube-scheduler-simulator.sigs.k8s.io/bind-result: '{"DefaultBinder":"success"}'

    Використовується для: Pod

    Ця анотація записує результат роботи втулків планувальника bind; використовується в https://sigs.k8s.io/kube-scheduler-simulator.

    kube-scheduler-simulator.sigs.k8s.io/filter-result

    Тип: Annotation

    Приклад:

    kube-scheduler-simulator.sigs.k8s.io/filter-result: >-
          {"node-282x7":{"AzureDiskLimits":"passed","EBSLimits":"passed","GCEPDLimits":"passed","InterPodAffinity":"passed","NodeAffinity":"passed","NodeName":"passed","NodePorts":"passed","NodeResourcesFit":"passed","NodeUnschedulable":"passed","NodeVolumeLimits":"passed","PodTopologySpread":"passed","TaintToleration":"passed","VolumeBinding":"passed","VolumeRestrictions":"passed","VolumeZone":"passed"},"node-gp9t4":{"AzureDiskLimits":"passed","EBSLimits":"passed","GCEPDLimits":"passed","InterPodAffinity":"passed","NodeAffinity":"passed","NodeName":"passed","NodePorts":"passed","NodeResourcesFit":"passed","NodeUnschedulable":"passed","NodeVolumeLimits":"passed","PodTopologySpread":"passed","TaintToleration":"passed","VolumeBinding":"passed","VolumeRestrictions":"passed","VolumeZone":"passed"}}
    

    Використовується для: Pod

    Ця анотація записує результат роботи втулків планувальника filter; використовується в https://sigs.k8s.io/kube-scheduler-simulator.

    kube-scheduler-simulator.sigs.k8s.io/finalscore-result

    Тип: Annotation

    Приклад:

    kube-scheduler-simulator.sigs.k8s.io/finalscore-result: >-
          {"node-282x7":{"ImageLocality":"0","InterPodAffinity":"0","NodeAffinity":"0","NodeNumber":"0","NodeResourcesBalancedAllocation":"76","NodeResourcesFit":"73","PodTopologySpread":"200","TaintToleration":"300","VolumeBinding":"0"},"node-gp9t4":{"ImageLocality":"0","InterPodAffinity":"0","NodeAffinity":"0","NodeNumber":"0","NodeResourcesBalancedAllocation":"76","NodeResourcesFit":"73","PodTopologySpread":"200","TaintToleration":"300","VolumeBinding":"0"}}
    

    Використовується для: Pod

    Ця анотація записує остаточні бали, які планувальник обчислює з балів, отриманих від втулків планувальника score; використовується в https://sigs.k8s.io/kube-scheduler-simulator.

    kube-scheduler-simulator.sigs.k8s.io/permit-result

    Тип: Annotation

    Приклад: kube-scheduler-simulator.sigs.k8s.io/permit-result: '{"CustomPermitPlugin":"success"}'

    Використовується для: Pod

    Ця анотація записує результат роботи втулків планувальника permit; використовується в https://sigs.k8s.io/kube-scheduler-simulator.

    kube-scheduler-simulator.sigs.k8s.io/permit-result-timeout

    Тип: Annotation

    Приклад: kube-scheduler-simulator.sigs.k8s.io/permit-result-timeout: '{"CustomPermitPlugin":"10s"}'

    Використовується для: Pod

    Ця анотація записує таймаути, що повертаються втулками планувальника permit; використовується в https://sigs.k8s.io/kube-scheduler-simulator.

    kube-scheduler-simulator.sigs.k8s.io/postfilter-result

    Тип: Annotation

    Приклад: kube-scheduler-simulator.sigs.k8s.io/postfilter-result: '{"DefaultPreemption":"success"}'

    Використовується для: Pod

    Ця анотація записує результат роботи втулків планувальника postfilter; використовується в https://sigs.k8s.io/kube-scheduler-simulator.

    kube-scheduler-simulator.sigs.k8s.io/prebind-result

    Тип: Annotation

    Приклад: kube-scheduler-simulator.sigs.k8s.io/prebind-result: '{"VolumeBinding":"success"}'

    Використовується для: Pod

    Ця анотація записує результат роботи втулків планувальника prebind; використовується в https://sigs.k8s.io/kube-scheduler-simulator.

    kube-scheduler-simulator.sigs.k8s.io/prefilter-result

    Тип: Annotation

    Приклад: kube-scheduler-simulator.sigs.k8s.io/prebind-result: '{"NodeAffinity":"[\"node-\a"]"}'

    Використовується для: Pod

    Ця анотація записує результат PreFilter роботи втулків планувальника prefilter; використовується в https://sigs.k8s.io/kube-scheduler-simulator.

    kube-scheduler-simulator.sigs.k8s.io/prefilter-result-status

    Тип: Annotation

    Приклад:

    kube-scheduler-simulator.sigs.k8s.io/prefilter-result-status: >-
          {"InterPodAffinity":"success","NodeAffinity":"success","NodePorts":"success","NodeResourcesFit":"success","PodTopologySpread":"success","VolumeBinding":"success","VolumeRestrictions":"success"}
    

    Використовується для: Pod

    Ця анотація записує результат роботи втулків планувальника prefilter; використовується в https://sigs.k8s.io/kube-scheduler-simulator.

    kube-scheduler-simulator.sigs.k8s.io/prescore-result

    Тип: Annotation

    Приклад:

        kube-scheduler-simulator.sigs.k8s.io/prescore-result: >-
          {"InterPodAffinity":"success","NodeAffinity":"success","NodeNumber":"success","PodTopologySpread":"success","TaintToleration":"success"}
    

    Використовується для: Pod

    Ця анотація записує результат роботи втулків планувальника prefilter; використовується в https://sigs.k8s.io/kube-scheduler-simulator.

    kube-scheduler-simulator.sigs.k8s.io/reserve-result

    Тип: Annotation

    Приклад: kube-scheduler-simulator.sigs.k8s.io/reserve-result: '{"VolumeBinding":"success"}'

    Використовується для: Pod

    Ця анотація записує результат роботи втулків планувальника reserve; використовується в https://sigs.k8s.io/kube-scheduler-simulator.

    kube-scheduler-simulator.sigs.k8s.io/result-history

    Тип: Annotation

    Приклад: kube-scheduler-simulator.sigs.k8s.io/result-history: '[]'

    Використовується для: Pod

    Ця анотація записує всі минулі результати планування від втулків планувальника; використовується в https://sigs.k8s.io/kube-scheduler-simulator.

    kube-scheduler-simulator.sigs.k8s.io/score-result

    Тип: Annotation

        kube-scheduler-simulator.sigs.k8s.io/score-result: >-
          {"node-282x7":{"ImageLocality":"0","InterPodAffinity":"0","NodeAffinity":"0","NodeNumber":"0","NodeResourcesBalancedAllocation":"76","NodeResourcesFit":"73","PodTopologySpread":"0","TaintToleration":"0","VolumeBinding":"0"},"node-gp9t4":{"ImageLocality":"0","InterPodAffinity":"0","NodeAffinity":"0","NodeNumber":"0","NodeResourcesBalancedAllocation":"76","NodeResourcesFit":"73","PodTopologySpread":"0","TaintToleration":"0","VolumeBinding":"0"}}
    

    Використовується для: Pod

    Ця анотація записує результат роботи втулків планувальника score; використовується в https://sigs.k8s.io/kube-scheduler-simulator.

    kube-scheduler-simulator.sigs.k8s.io/selected-node

    Тип: Annotation

    Приклад: kube-scheduler-simulator.sigs.k8s.io/selected-node: node-282x7

    Використовується для: Pod

    Ця анотація записує вузол, який обрано циклом планування; використовується в https://sigs.k8s.io/kube-scheduler-simulator.

    kubernetes.io/arch

    Тип: Label

    Приклад: kubernetes.io/arch: "amd64"

    Використовується для: Node

    Kubelet заповнює це значення за допомогою runtime.GOARCH, як визначено в Go. Це може бути корисним, якщо ви використовуєте змішані вузли ARM і x86.

    kubernetes.io/os

    Тип: Label

    Приклад: kubernetes.io/os: "linux"

    Використовується для: Node, Pod

    Для вузлів Kubelet заповнює це значення за допомогою runtime.GOOS, як визначено в Go. Це може бути корисним, якщо у вашому кластері використовуються різні операційні системи (наприклад, змішані вузли Linux і Windows).

    Ви також можете встановити цю мітку на Pod. Kubernetes дозволяє встановлювати будь-яке значення для цієї мітки; якщо ви використовуєте цю мітку, ви все ж повинні встановити її на рядок Go runtime.GOOS для операційної системи, з якою працює цей Pod.

    Якщо значення мітки kubernetes.io/os для Podʼа не відповідає значенню мітки на вузлі, Kubelet на цьому вузлі не прийме Pod. Проте це не враховується планувальником kube-scheduler. Крім того, Kubelet відмовляється запускати Pod, якщо ви вказали операційну систему Podʼа, яка не відповідає операційній системі вузла, на якому працює цей Kubelet. Більше деталей можна знайти в розділі Операційна система Podʼа.

    kubernetes.io/metadata.name

    Тип: Label

    Приклад: kubernetes.io/metadata.name: "mynamespace"

    Використовується для: Namespaces

    API-сервер Kubernetes (частина панелі управління) встановлює цю мітку на всі простори імен. Значення мітки встановлюється на імʼя простору імен. Ви не можете змінити значення цієї мітки.

    Це корисно, якщо ви хочете вказати конкретний простір імен за допомогою селектора міток.

    kubernetes.io/limit-ranger

    Тип: Annotation

    Приклад: kubernetes.io/limit-ranger: "LimitRanger plugin set: cpu, memory request for container nginx; cpu, memory limit for container nginx"

    Використовується для: Pod

    Типово Kubernetes не надає жодних обмежень на ресурси, тобто, якщо ви явно не визначите обмеження, ваш контейнер може споживати необмежену кількість CPU та памʼяті. Ви можете визначити типовий запит або типове обмеження для Podʼів. Це робиться шляхом створення LimitRange у відповідному просторі імен. Podʼи, розгорнуті після визначення LimitRange, матимуть ці обмеження, застосовані до них. Анотація kubernetes.io/limit-ranger фіксує, що для Podʼа були вказані типові значення ресурсів і їх було успішно застосовано. Для детальнішої інформації читайте про LimitRanges.

    kubernetes.io/config.hash

    Тип: Annotation

    Приклад: kubernetes.io/config.hash: "df7cc47f8477b6b1226d7d23a904867b"

    Використовується для: Pod

    Коли kubelet створює статичний Pod на основі заданого маніфесту, він додає цю анотацію до статичного Podʼа. Значення анотації — це UID Podʼа. Зверніть увагу, що kubelet також встановлює .spec.nodeName у поточне імʼя вузла, ніби Pod було заплановано на цей вузол.

    kubernetes.io/config.mirror

    Тип: Annotation

    Приклад: kubernetes.io/config.mirror: "df7cc47f8477b6b1226d7d23a904867b"

    Використовується для: Pod

    Для статичного Podʼа, створеного kubelet на вузлі, на API-сервері створюється дзеркальний Pod. Kubelet додає анотацію, щоб позначити, що цей Pod фактично є дзеркальним Podʼом. Значення анотації копіюється з анотації kubernetes.io/config.hash, яка є UID Podʼа.

    При оновленні Podʼа з цією встановленою анотацією анотацію не можна змінити або видалити. Якщо у Podʼа немає цієї анотації, її не можна додати під час оновлення Podʼа.

    kubernetes.io/config.source

    Тип: Annotation

    Приклад: kubernetes.io/config.source: "file"

    Використовується для: Pod

    Ця анотація додається kubelet, щоб вказати, звідки походить Pod. Для статичних Podʼів значення анотації може бути одним із file або http, залежно від того, де розташований маніфест Podʼа. Для Podʼа, створеного на API-сервері, а потім запланованого на поточний вузол, значення анотації — api.

    kubernetes.io/config.seen

    Тип: Annotation

    Приклад: kubernetes.io/config.seen: "2023-10-27T04:04:56.011314488Z"

    Використовується для: Pod

    Коли kubelet вперше бачить Pod, він може додати цю анотацію до Podʼа зі значенням поточного часу у форматі RFC3339.

    addonmanager.kubernetes.io/mode

    Тип: Label

    Приклад: addonmanager.kubernetes.io/mode: "Reconcile"

    Використовується для: Всі обʼєкти

    Для вказання того, як слід керувати надбудовою, ви можете використовувати мітку addonmanager.kubernetes.io/mode. Ця мітка може мати одне з трьох значень: Reconcile, EnsureExists або Ignore.

    • Reconcile: Ресурси надбудови періодично будуть зведені до очікуваного стану. Якщо є будь-які відмінності, менеджер надбудов буде створювати заново, змінювати конфігурацію або видаляти ресурси за потреби. Це типовий режим, якщо мітку не вказано.
    • EnsureExists: Ресурси надбудов будуть перевірятися лише на наявність, але не будуть змінюватися після створення. Менеджер надбудов створить ресурси або створить їх заново, коли відсутній жоден екземпляр ресурсу з таким імʼям.
    • Ignore: Ресурси надбудов будуть ігноруватися. Цей режим корисний для надбудов, які не сумісні з менеджером надбудов або керуються іншим контролером.

    Для отримання докладнішої інформації див. Addon-manager.

    beta.kubernetes.io/arch (deprecated)

    Тип: Label

    Ця мітка є застарілою. Використовуйте натомість kubernetes.io/arch.

    beta.kubernetes.io/os (deprecated)

    Тип: Label

    Ця мітка є застарілою. Використовуйте натомість kubernetes.io/os.

    kube-aggregator.kubernetes.io/automanaged

    Тип: Label

    Приклад: kube-aggregator.kubernetes.io/automanaged: "onstart"

    Використовується для: APIService

    kube-apiserver встановлює цю мітку для будь-якого обʼєкта APIService, який API-сервер створив автоматично. Мітка позначає, як панель управління повинна керувати цим APIService. Ви не повинні додавати, змінювати або видаляти цю мітку самостійно.

    Примітка:

    Обʼєкти APIService, що автоматично керуються, видаляються kube-apiserver, коли він не має вбудованого API або API власного ресурсу, що відповідає групі/версії API цього APIService.

    Є два можливих значення:

    • onstart: APIService повинен бути зведений до очікуваного стану під час запуску API-сервера, але не під час інших операцій.
    • true: API-сервер повинен безперервно зводити цей APIService до очікуваного стану.

    service.alpha.kubernetes.io/tolerate-unready-endpoints (deprecated)

    Тип: Annotation

    Використовується для: Service

    Ця анотація раніше використовувалася для вказівки, що контролер Endpoints повинен створювати Endpoints для неготових Podʼів. Починаючи з Kubernetes 1.11, кращим API для цієї функції є поле .publishNotReadyAddresses в Service. Ця анотація не має впливу в Kubernetes 1.37.

    autoscaling.alpha.kubernetes.io/behavior (deprecated)

    Тип: Annotation

    Використовується для: HorizontalPodAutoscaler

    Ця анотація використовувалася для налаштування поведінки масштабування для HorizontalPodAutoscaler (HPA) у попередніх версіях Kubernetes. Вона дозволяла вказати, як HPA має масштабувати Podʼи вгору або вниз, включаючи встановлення вікон стабілізації та політик масштабування. Встановлення цієї анотації не має жодного ефекту в будь-якому підтримуваному випуску Kubernetes.

    kubernetes.io/hostname

    Тип: Label

    Приклад: kubernetes.io/hostname: "ip-172-20-114-199.ec2.internal"

    Використовується для: Node

    Kubelet заповнює цю мітку імʼям хоста вузла. Зверніть увагу, що імʼя хоста можна змінити відносно "фактичного" імені хоста за допомогою прапорця --hostname-override для kubelet.

    Ця мітка також використовується як частина ієрархії топології. Дивіться topology.kubernetes.io/zone для отримання додаткової інформації.

    kubernetes.io/change-cause

    Тип: Annotation

    Приклад: kubernetes.io/change-cause: "kubectl edit --record deployment foo"

    Використовується для: Всі обʼєкти

    Ця анотація містить найкраще припущення щодо того, чому щось було змінено.

    Вона заповнюється при додаванні параметру --record до команди kubectl, яка може змінити обʼєкт.

    kubernetes.io/description

    Тип: Annotation

    Приклад: kubernetes.io/description: "Description of K8s object."

    Використовується для: Всі обʼєкти

    Ця анотація використовується для опису конкретної поведінки вказаного обʼєкта.

    kubernetes.io/enforce-mountable-secrets (deprecated)

    Тип: Annotation

    Приклад: kubernetes.io/enforce-mountable-secrets: "true"

    Використовується для: ServiceAccount

    Примітка:

    kubernetes.io/enforce-mountable-secrets є застарілою, починаючи з Kubernetes v1.32. Використовуйте окремі простори імен для ізоляції доступу до змонтованих секретів.

    Значення цієї анотації повинно бути true, щоб вона набула чинності. Коли ви встановлюєте цю анотацію у значення "true", Kubernetes застосовує наступні правила для Podʼів, що працюють з цим ServiceAccount:

    1. Secretʼи, змонтовані як томи, повинні бути перелічені в полі secrets ServiceAccount.
    2. Secretʼи, на які посилаються у полі envFrom для контейнерів (включно з sidecar-контейнерами та контейнерами ініціалізації), також повинні бути перелічені в полі secrets ServiceAccount. Якщо будь-який контейнер в Podʼі посилається на Secret, який не перелічений в полі secrets ServiceAccount (навіть якщо посилання позначене як optional), то Pod не запуститься, і буде згенеровано помилку, що вказує на невідповідне посилання на секрет.
    3. Secretʼи, на які посилаються у полі imagePullSecrets Podʼа, повинні бути присутніми в полі imagePullSecrets ServiceAccount, Pod не запуститься, і буде згенеровано помилку, що вказує на невідповідне посилання на секрет для отримання образу.

    Під час створення або оновлення Podʼа перевіряються ці правила. Якщо Pod не відповідає їм, він не запуститься, і ви побачите повідомлення про помилку. Якщо Pod уже працює, і ви змінюєте анотацію kubernetes.io/enforce-mountable-secrets на значення true, або ви редагуєте повʼязаний ServiceAccount для видалення посилання на Secret, який вже використовується Podʼом, Pod продовжить працювати.

    node.alpha.kubernetes.io/ttl (deprecated)

    Тип: Label

    Приклад: node.alpha.kubernetes.io/ttl: "0"

    Використовується для: Node

    Ця мітка історично використовувалася деякими інструментами (такими як minikube) для встановлення значення часу існування вузлів. Мітка є застарілою і не повинна використовуватися в нових розгортаннях.

    Примітка:

    Ця мітка є застарілою і не має впливу в поточних версіях Kubernetes. Вона все ще може бути встановлена старими інструментами для забезпечення зворотної сумісності.

    node.kubernetes.io/exclude-from-external-load-balancers

    Тип: Label

    Приклад: node.kubernetes.io/exclude-from-external-load-balancers

    Використовується для: Node

    Ви можете додати мітки до певних робочих вузлів, щоб виключити їх зі списку серверів бекенда, які використовуються зовнішніми балансувальниками навантаження. Наступна команда може бути використана для виключення робочого вузла зі списку серверів бекенда у наборі серверів бекенда:

    kubectl label nodes <node-name> node.kubernetes.io/exclude-from-external-load-balancers=true
    

    controller.kubernetes.io/pod-deletion-cost

    Тип: Annotation

    Приклад: controller.kubernetes.io/pod-deletion-cost: "10"

    Використовується для: Pod

    Ця анотація використовується для встановлення Вартості видалення Podʼа, що дозволяє користувачам впливати на порядок зменшення масштабування ReplicaSet. Значення анотації аналізується як тип int32.

    cluster-autoscaler.kubernetes.io/enable-ds-eviction

    Тип: Annotation

    Приклад: cluster-autoscaler.kubernetes.io/enable-ds-eviction: "true"

    Використовується для: Pod

    Ця анотація контролює, чи повинен бути виселений Pod DaemonSet за допомогою ClusterAutoscaler. Ця анотація повинна бути вказана на Podʼах DaemonSet у маніфесті DaemonSet. Коли ця анотація встановлена в значення "true", ClusterAutoscaler може виселити Pod DaemonSet, навіть якщо інші правила зазвичай цьому запобігли б. Щоб заборонити ClusterAutoscaler виселяти Podʼи DaemonSet, ви можете встановити цю анотацію в значення "false" для важливих Podʼів DaemonSet. Якщо ця анотація не встановлена, тоді ClusterAutoscaler діє згідно зі своєю загальною поведінкою (тобто виселяє DaemonSet на основі своєї конфігурації).

    Примітка:

    Ця анотація впливає тільки на Podʼи DaemonSet.

    kubernetes.io/ingress-bandwidth

    Тип: Annotation

    Приклад: kubernetes.io/ingress-bandwidth: 10M

    Використовується для: Pod

    Ви можете застосувати до Podʼа формування трафіку з урахуванням якості обслуговування та ефективно обмежити його доступну пропускну здатність. Вхідний трафік до Podʼа обробляється шляхом формування черги пакетів для ефективної обробки даних. Щоб обмежити пропускну здатність Podʼа, напишіть файл визначення обʼєкта JSON і вкажіть швидкість передачі даних за допомогою анотації kubernetes.io/ingress-bandwidth. Одиницею, яка використовується для вказівки швидкості вхідної передачі, є біти на секунду, в форматі Кількості. Наприклад, 10M означає 10 мегабіт на секунду.

    Примітка:

    Анотація формування трафіку вхідного напрямку є експериментальною функцією. Якщо ви хочете увімкнути підтримку формування трафіку, ви повинні додати втулок bandwidth до конфігураційного файлу CNI (типово /etc/cni/net.d) і переконатися, що відповідний виконуваний файл є у теці CNI bin (типово /opt/cni/bin).

    kubernetes.io/egress-bandwidth

    Тип: Annotation

    Приклад: kubernetes.io/egress-bandwidth: 10M

    Використовується для: Pod

    Вихідний трафік з Podʼа обробляється за допомогою застосування політик, які просто відкидають пакети, що перевищують налаштовану швидкість. Обмеження, які ви встановлюєте на Pod, не впливають на пропускну здатність інших Podʼів. Щоб обмежити пропускну здатність Podʼа, напишіть файл визначення обʼєкта JSON і вкажіть швидкість передачі даних за допомогою анотації kubernetes.io/egress-bandwidth. Одиницею, яка використовується для вказівки швидкості вихідної передачі, є біти на секунду, в форматі Кількості. Наприклад, 10M означає 10 мегабіт на секунду.

    Примітка:

    Анотація формування трафіку вихідного напрямку є експериментальною функцією. Якщо ви хочете увімкнути підтримку формування трафіку, ви повинні додати втулок bandwidth до конфігураційного файлу CNI (типово /etc/cni/net.d) і переконатися, що відповідний виконуваний файл є у теці CNI bin (типово /opt/cni/bin).

    beta.kubernetes.io/instance-type (deprecated)

    Тип: Label

    Примітка:

    Починаючи з версії v1.17, ця мітка застаріла на користь node.kubernetes.io/instance-type.

    node.kubernetes.io/instance-type

    Тип: Label

    Приклад: node.kubernetes.io/instance-type: "m3.medium"

    Використовується для: Node

    Kubelet заповнює це значенням типу екземпляра, як визначено хмарним провайдером. Це буде встановлено лише в разі використання хмарного провайдера. Це налаштування є зручним, якщо ви хочете спрямувати певні робочі навантаження на певні типи екземплярів, але, як правило, ви хочете покладатися на планувальник Kubernetes для виконання планування на основі ресурсів. Ви повинні намагатися планувати на основі властивостей, а не на основі типів екземплярів (наприклад, потребувати GPU, замість потреби в g2.2xlarge).

    failure-domain.beta.kubernetes.io/region (deprecated)

    Тип: Label

    Примітка:

    Починаючи з версії v1.17, ця мітка застаріла на користь topology.kubernetes.io/region.

    failure-domain.beta.kubernetes.io/zone (deprecated)

    Тип: Label

    Примітка:

    Починаючи з версії v1.17, ця мітка застаріла на користь topology.kubernetes.io/zone.

    pv.kubernetes.io/bind-completed

    Тип: Annotation

    Приклад: pv.kubernetes.io/bind-completed: "yes"

    Використовується для: PersistentVolumeClaim

    Коли ця анотація встановлена на PersistentVolumeClaim (PVC), це вказує на те, що життєвий цикл PVC пройшов через початкове налаштування звʼязування. Коли вона присутня, ця інформація змінює те, як панель управління тлумачить стан обʼєктів PVC. Значення цієї анотації не має значення для Kubernetes.

    pv.kubernetes.io/bound-by-controller

    Тип: Annotation

    Приклад: pv.kubernetes.io/bound-by-controller: "yes"

    Використовується для: PersistentVolume, PersistentVolumeClaim

    Якщо ця анотація встановлена на PersistentVolume або PersistentVolumeClaim, це вказує на те, що звʼязка зберігання (PersistentVolume → PersistentVolumeClaim або PersistentVolumeClaim → PersistentVolume) була встановлена контролером. Якщо анотація не встановлена, а звʼязка зберігання вже існує, відсутність цієї анотації означає, що звʼязка була встановлена вручну. Значення цієї анотації не має значення.

    pv.kubernetes.io/provisioned-by

    Тип: Annotation

    Приклад: pv.kubernetes.io/provisioned-by: "kubernetes.io/rbd"

    Використовується для: PersistentVolume

    Ця анотація додається до PersistentVolume (PV), який був динамічно наданий Kubernetes. Її значення — це імʼя втулка тому, який створив том. Вона служить як користувачам (щоб показати, звідки походить PV), так і Kubernetes (щоб розпізнавати динамічно надані PV у своїх рішеннях).

    pv.kubernetes.io/migrated-to

    Тип: Annotation

    Приклад: pv.kubernetes.io/migrated-to: pd.csi.storage.gke.io

    Використовується для: PersistentVolume, PersistentVolumeClaim

    Ця анотація додається до PersistentVolume (PV) та PersistentVolumeClaim (PVC), які мають бути динамічно надані або видалені відповідним драйвером CSI через функціональну можливість CSIMigration. Коли ця анотація встановлена, компоненти Kubernetes "відступають", і з обʼєктами працюватиме external-provisioner.

    statefulset.kubernetes.io/pod-name

    Тип: Label

    Приклад: statefulset.kubernetes.io/pod-name: "mystatefulset-7"

    Використовується для: Pod

    Коли контролер StatefulSet створює Pod для StatefulSet, панель управління встановлює цю мітку на Podʼі. Значення мітки — це імʼя створеного Podʼа.

    Дивіться Мітка імені Podʼа у темі StatefulSet для отримання більш детальної інформації.

    scheduler.alpha.kubernetes.io/node-selector

    Тип: Annotation

    Приклад: scheduler.alpha.kubernetes.io/node-selector: "name-of-node-selector"

    Використовується для: Namespace

    PodNodeSelector використовує цей ключ анотації для призначення селекторів вузла до Podʼів у просторах імен.

    topology.kubernetes.io/region

    Тип: Label

    Приклад: topology.kubernetes.io/region: "us-east-1"

    Використовується для: Node, PersistentVolume

    Див. topology.kubernetes.io/zone.

    topology.kubernetes.io/zone

    Тип: Label

    Приклад: topology.kubernetes.io/zone: "us-east-1c"

    Використовується для: Node, PersistentVolume

    На Node: kubelet або зовнішній cloud-controller-manager заповнюють мітку інформацією від хмарного провайдера. Мітку буде встановлено лише в разі використання хмарного провайдера. Однак ви можете розглянути можливість встановлення її на вузлах, якщо це має сенс у вашій топології.

    На PersistentVolume: засоби надання томів, що враховують топологію, автоматично встановлюють обмеження спорідненості вузла для PersistentVolume.

    Зона представляє собою логічний домен відмови. Кластери Kubernetes зазвичай охоплюють декілька зон для підвищення доступності. Хоча точне визначення зони залишається на розсуд реалізацій інфраструктури, загальні властивості зон включають дуже низьку мережеву затримку всередині зони, відсутність вартості мережевого трафіку всередині зони та незалежність від відмов інших зон. Наприклад, вузли всередині зони можуть використовувати один мережевий комутатор, але вузли в різних зонах цього робити не повинні.

    Регіон представляє собою більшу область, що складається з однієї або декількох зон. Кластери Kubernetes рідко охоплюють декілька регіонів. Хоча точне визначення зони або регіону залишається на розсуд реалізацій інфраструктури, загальні властивості регіону включають вищу мережеву затримку між регіонами, ніж всередині них, ненульову вартість мережевого трафіку між ними та незалежність від відмов інших зон або регіонів. Наприклад, вузли всередині регіону можуть використовувати спільну інфраструктуру живлення (наприклад, джерело безперебійного живлення або генератор), але вузли в різних регіонах зазвичай ні.

    Kubernetes робить кілька припущень щодо структури зон та регіонів:

    1. регіони та зони є ієрархічними: зони є строгими підмножинами регіонів, і жодна зона не може бути в двох регіонах;
    2. імена зон є унікальними у всіх регіонах; наприклад, регіон "africa-east-1" може складатися з зон "africa-east-1a" та "africa-east-1b".

    Можна безпечно припускати, що мітки топології не змінюються. Навіть якщо мітки є строго змінюваними, споживачі можуть припускати, що даний вузол не буде переміщений між зонами без знищення та перестворення.

    Kubernetes може використовувати цю інформацію різними способами. Наприклад, планувальник автоматично намагається розподілити Podʼи в ReplicaSet по вузлах в однозонному кластері (щоб зменшити вплив відмови вузла, див. kubernetes.io/hostname). З кластерами, які охоплюють кілька зон, ця поведінка розподілу також застосовується до зон (для зменшення впливу відмови зони). Це досягається за допомогою SelectorSpreadPriority.

    SelectorSpreadPriority — це розміщення за принципом найкращих зусиль (best effort). Якщо зони у вашому кластері є гетерогенними (наприклад, різна кількість вузлів, різні типи вузлів або різні вимоги Podʼів до ресурсів), це розміщення може завадити рівномірному розподілу ваших Podʼів між зонами. Якщо це потрібно, ви можете використовувати однорідні зони (однакова кількість і типи вузлів), щоб зменшити ймовірність нерівномірного розподілу.

    Планувальник (за допомогою предиката VolumeZonePredicate) також буде забезпечувати, що Podʼи, які вимагають певного тома, будуть розміщені лише в тій же зоні, що й цей том. Томи не можуть бути підключені в різних зонах.

    Якщо PersistentVolumeLabel не підтримує автоматичне додавання міток до ваших PersistentVolume, варто розглянути можливість додавання міток вручну (або додавання підтримки PersistentVolumeLabel). З PersistentVolumeLabel планувальник перешкоджає Podʼам монтувати томи в інших зонах. Якщо ваша інфраструктура не має цього обмеження, вам не потрібно додавати мітки зони до томів взагалі.

    volume.alpha.kubernetes.io/node-affinity (deprecated)

    Тип: Annotation

    Використовується для: PersistentVolume

    Ця анотація зберігала правила спорідненості вузла для PersistentVolume у вигляді серіалізованого в JSON обʼєкта NodeAffinity. Планувальник використовував ці правила для обмеження вузлів, які могли отримати доступ до тому.

    Ця анотація застаріла починаючи з Kubernetes v1.10. Замість неї використовуйте поле nodeAffinity у специфікації PersistentVolume.

    volume.beta.kubernetes.io/storage-provisioner (deprecated)

    Тип: Annotation

    Приклад: volume.beta.kubernetes.io/storage-provisioner: "k8s.io/minikube-hostpath"

    Використовується для: PersistentVolumeClaim

    Ця анотація застаріла починаючи з v1.23. Дивіться volume.kubernetes.io/storage-provisioner.

    volume.beta.kubernetes.io/storage-class (deprecated)

    Тип: Annotation

    Приклад: volume.beta.kubernetes.io/storage-class: "example-class"

    Використовується для: PersistentVolume, PersistentVolumeClaim

    Ця анотація може використовуватися для PersistentVolume(PV) або PersistentVolumeClaim(PVC), щоб вказати імʼя StorageClass. Коли вказано і атрибут storageClassName, і анотацію volume.beta.kubernetes.io/storage-class, анотація volume.beta.kubernetes.io/storage-class має перевагу над атрибутом storageClassName.

    Ця анотація застаріла. Замість цього встановіть поле storageClassName для PersistentVolumeClaim або PersistentVolume.

    volume.beta.kubernetes.io/mount-options (deprecated)

    Тип: Annotation

    Приклад: volume.beta.kubernetes.io/mount-options: "ro,soft"

    Використовується для: PersistentVolume

    Адміністратор Kubernetes може вказати додаткові опції монтування, які застосовуються, коли PersistentVolume монтується на вузлі.

    volume.kubernetes.io/storage-provisioner

    Тип: Annotation

    Використовується для: PersistentVolumeClaim

    Ця анотація додається до PVC, яка має бути динамічно наданою. Її значення — це імʼя втулка тому, який має надати том для цієї PVC.

    volume.kubernetes.io/selected-node

    Тип: Annotation

    Використовується для: PersistentVolumeClaim

    Ця анотація додається до PVC, яка активується планувальником для динамічного надання. Її значення — це імʼя вибраного вузла.

    volumes.kubernetes.io/controller-managed-attach-detach

    Тип: Annotation

    Використовується для: Node

    Якщо вузол має анотацію volumes.kubernetes.io/controller-managed-attach-detach, його операції прикріплення та відʼєднання зберігання керуються контролером прикріплення/відʼєднання тому.

    Значення анотації не має значення.

    node.kubernetes.io/windows-build

    Тип: Label

    Приклад: node.kubernetes.io/windows-build: "10.0.17763"

    Використовується для: Node

    Коли kubelet працює на операційній системі Microsoft Windows, він автоматично позначає міткою свій вузол, щоб зафіксувати версію Windows Server, що використовується.

    Значення мітки має формат "MajorVersion.MinorVersion.BuildNumber".

    storage.alpha.kubernetes.io/migrated-plugins

    Тип: Annotation

    Приклад:storage.alpha.kubernetes.io/migrated-plugins: "kubernetes.io/cinder"

    Використовується для: CSINode (API розширення)

    Цю анотацію буде автоматично додано до обʼєкта CSINode, який зіставляється з вузлом, на якому встановлено CSIDriver. Ця анотація показує назву вбудованого втулка, який було перенесено. Її значення залежить від типу сховища вбудованого хмарного провайдера вашого кластера.

    Наприклад, якщо тип зберігання вбудованого хмарного провайдера є CSIMigrationvSphere, обʼєкт CSINodes для вузла повинен бути оновлений наступним чином: storage.alpha.kubernetes.io/migrated-plugins: "kubernetes.io/vsphere-volume"

    service.kubernetes.io/headless

    Тип: Label

    Приклад: service.kubernetes.io/headless: ""

    Використовується для: EndpointSlice, Endpoints

    Панель управління додає цю мітку до обʼєктів EndpointSlice та Endpoints, коли Service, якому вони належать, є headless (як підказка для проксі сервісів, що вони можуть ігнорувати ці точки доступу). Щоб дізнатися більше, прочитайте Headless Services.

    service.kubernetes.io/topology-aware-hints (deprecated)

    Приклад: service.kubernetes.io/topology-aware-hints: "Auto"

    Використовується для: Service

    Це застарілий аліас для анотації service.kubernetes.io/topology-mode, яка має таку саму функціональність.

    service.kubernetes.io/topology-mode

    Тип: Annotation

    Приклад: service.kubernetes.io/topology-mode: Auto

    Використовується для: Service

    Ця анотація надає спосіб визначення того, як Serviceʼи обробляють топологію мережі; наприклад, ви можете налаштувати Service так, щоб Kubernetes віддавав перевагу збереженню трафіку між клієнтом і сервером в межах однієї топологічної зони. У деяких випадках це може допомогти зменшити витрати або покращити роботу мережі.

    Дивіться Маршрутизація з урахуванням топології для отримання додаткових відомостей.

    kubernetes.io/service-name

    Тип: Label

    Приклад: kubernetes.io/service-name: "my-website"

    Використовується для: EndpointSlice

    Kubernetes асоціює EndpointSlices з Services за допомогою цієї мітки.

    Ця мітка записує імʼя Service, що його підтримує EndpointSlice. Усі EndpointSlices повинні мати цю мітку встановлену на імʼя їх повʼязаного Service.

    kubernetes.io/service-account.name

    Тип: Annotation

    Приклад: kubernetes.io/service-account.name: "sa-name"

    Використовується для: Secret

    Ця анотація записує імʼя ServiceAccount, що його представляє токен (збережений у Secret типу kubernetes.io/service-account-token).

    kubernetes.io/service-account.uid

    Тип: Annotation

    Приклад: kubernetes.io/service-account.uid: da68f9c6-9d26-11e7-b84e-002dc52800da

    Використовується для: Secret

    Ця анотація записує унікальний ідентифікатор ServiceAccount, що його представляє токен (збережений у Secret типу kubernetes.io/service-account-token).

    kubernetes.io/legacy-token-last-used

    Тип: Label

    Приклад: kubernetes.io/legacy-token-last-used: 2022-10-24

    Використовується для: Secret

    Панель управління додає цю мітку лише до Secretʼів, які мають тип kubernetes.io/service-account-token. Значення цієї мітки записує дату (в форматі ISO 8601, в часовому поясі UTC), коли панель управління востаннє бачила запит, де клієнт автентифікувався за допомогою токена службового облікового запису.

    Якщо легасі-токен використовувався останній раз до того, як кластер отримав цю функцію (додану у Kubernetes v1.26), то мітка не встановлена.

    kubernetes.io/legacy-token-invalid-since

    Тип: Label

    Приклад: kubernetes.io/legacy-token-invalid-since: 2023-10-27

    Використовується для: Secret

    Панель управління автоматично додає цю мітку до автогенерованих Secretʼів з типом kubernetes.io/service-account-token. Ця мітка позначає токен на основі Secret як недійсний для автентифікації. Значення цієї мітки записує дату (в форматі ISO 8601, в часовому поясі UTC), коли панель управління виявляє, що автогенерований Secret не використовувався протягом вказаного періоду (типово — один рік).

    endpoints.kubernetes.io/managed-by (deprecated)

    Тип: Label

    Приклад: endpoints.kubernetes.io/managed-by: endpoint-controller

    Використовується для: Endpoints

    Ця мітка використовується всередині Kubernetes для позначення обʼєктів Endpoints, які були створені Kubernetes (на відміну від Endpoints, створених користувачами чи зовнішніми контролерами).

    Примітка:

    API Endpoints є застарілим на користь EndpointSlice.

    endpointslice.kubernetes.io/managed-by

    Тип: Label

    Приклад: endpointslice.kubernetes.io/managed-by: endpointslice-controller.k8s.io

    Використовується для: EndpointSlices

    Ця мітка використовується для позначення контролера або сутності, яка керує EndpointSlice. Мета цієї мітки — забезпечити можливість керувати різними обʼєктами EndpointSlice різними контролерами або сутностями в межах одного та самого кластера. Значення endpointslice-controller.k8s.io вказує на обʼєкт EndpointSlice, який було створено автоматично Kubernetes для Service із селекторами.

    endpointslice.kubernetes.io/skip-mirror

    Тип: Label

    Приклад: endpointslice.kubernetes.io/skip-mirror: "true"

    Використовується для: Endpoints

    Цю мітку можна встановити на значення "true" для ресурсу Endpoints, щоб позначити, що контролер EndpointSliceMirroring не повинен дублювати цей ресурс за допомогою EndpointSlices.

    service.kubernetes.io/service-proxy-name

    Тип: Label

    Приклад: service.kubernetes.io/service-proxy-name: "foo-bar"

    Використовується для: Service

    Встановлення значення для цієї мітки вказує kube-proxy ігнорувати цей сервіс для проксіювання. Це дозволяє використовувати альтернативні реалізації проксі для цього сервісу (наприклад, запуск DaemonSet, який керує nftables своїм способом). Кілька альтернативних реалізацій проксі можуть бути активними одночасно, використовуючи це поле, наприклад, маючи унікальне значення для кожної альтернативної реалізації проксі, щоб відповідати за свої відповідні сервіси.

    experimental.windows.kubernetes.io/isolation-type (deprecated)

    Тип: Annotation

    Приклад: experimental.windows.kubernetes.io/isolation-type: "hyperv"

    Використовується для: Pod

    Ця анотація використовується для запуску контейнерів Windows з ізоляцією Hyper-V.

    Примітка:

    Починаючи з v1.20, ця анотація є застарілою. Експериментальна підтримка Hyper-V була вилучена в 1.21.

    gateway.networking.k8s.io/generator

    Тип: Annotation

    Приклад: gateway.networking.k8s.io/generator: "ingress2gateway"

    Використовується для: Gateway, HTTPRoute та інші ресурси Gateway API

    Ця анотація додається інструментами, які автоматично створюють ресурси Gateway API. Значення визначає інструмент, який створив ресурс (наприклад, ingress2gateway). Анотація є лише інформаційною і не впливає на поведінку жодної реалізації Gateway API.

    ingressclass.kubernetes.io/is-default-class

    Тип: Annotation

    Приклад: ingressclass.kubernetes.io/is-default-class: "true"

    Використовується для: IngressClass

    Якщо ресурс IngressClass має цю анотацію встановлену на значення "true", новим ресурсам Ingress без вказаного класу буде призначено цей типовий клас.

    kubernetes.io/ingress.class (deprecated)

    Тип: Annotation

    Використовується для: Ingress

    Примітка:

    Починаючи з v1.18, ця анотація застаріла на користь spec.ingressClassName.

    kubernetes.io/cluster-service (deprecated)

    Тип: Label

    Приклад: kubernetes.io/cluster-service: "true"

    Використовується для: Service

    Ця мітка вказує на те, що Service надає послугу кластеру, якщо її значення встановлено у true. Коли ви запускаєте kubectl cluster-info, утиліта запитує Services, для яких цю мітку встановлено у значення true.

    Втім, встановлення цієї мітки на будь-якому Service є застарілим.

    storageclass.kubernetes.io/is-default-class

    Тип: Annotation

    Приклад: storageclass.kubernetes.io/is-default-class: "true"

    Використовується для: StorageClass

    Якщо один ресурс StorageClass має цю анотацію встановлену на значення "true", новим ресурсам PersistentVolumeClaim без вказаного класу буде призначено цей типовий клас.

    alpha.kubernetes.io/provided-node-ip (alpha)

    Тип: Annotation

    Приклад: alpha.kubernetes.io/provided-node-ip: "10.0.0.1"

    Використовується для: Node

    Kubelet може встановити цю анотацію на вузлі, щоб вказати його налаштовану адресу IPv4 та/або IPv6.

    Коли kubelet запускається з прапорцем --cloud-provider, встановленим на будь-яке значення (включно як із зовнішніми, так і з застарілими вбудованими хмарними провайдерами), він встановлює цю анотацію на вузлі, щоб вказати IP-адресу, встановлену прапорцем командного рядка (--node-ip). cloud-controller-manager перевіряє в хмарного провайдера, що ця IP-адреса є дійсною.

    batch.kubernetes.io/job-completion-index

    Тип: Annotation, Label

    Приклад: batch.kubernetes.io/job-completion-index: "3"

    Використовується для: Pod

    Контролер Job у kube-controller-manager встановлює це як мітку та анотацію для Podʼів, створених з режимом завершення Indexed.

    Зверніть увагу, що для того, щоб це було додано як мітку Podʼа, необхідно увімкнути функціональну можливість PodIndexLabel, інакше це буде просто анотацією.

    batch.kubernetes.io/cronjob-scheduled-timestamp

    Тип: Annotation

    Приклад: batch.kubernetes.io/cronjob-scheduled-timestamp: "2016-05-19T03:00:00-07:00"

    Використовується для: Jobs та Pods, що керуються через CronJobs

    Ця анотація використовується для запису оригінального (очікуваного) часу створення для Job, коли цей Job є частиною CronJob. Панель управління встановлює значення цієї мітки часу у форматі RFC3339. Якщо Job належить до CronJob з вказаною часовою зоною, тоді мітка часу знаходиться в цій часовій зоні. В іншому випадку мітка часу відображається в локальному часі controller-manager.

    cronjob.kubernetes.io/instantiate

    Тип: Annotation

    Приклад: cronjob.kubernetes.io/instantiate: "manual"

    Використовується для: Jobs

    Коли ви використовуєте kubectl create job з прапорцем --from=cronjob/<cronjob-name> для ручного створення Job з існуючого шаблону CronJob, kubectl встановлює цю анотацію на новостворений Job. Значення цієї анотації завжди дорівнює manual. Ця анотація дозволяє відрізнити Jobs, які були створені на вимогу користувача, від Jobs, які контролер CronJob автоматично створює у запланований час.

    kubectl.kubernetes.io/default-container

    Тип: Annotation

    Приклад: kubectl.kubernetes.io/default-container: "front-end-app"

    Значення анотації — це імʼя контейнера, яке є типовим для цього Podʼа. Наприклад, команди kubectl logs або kubectl exec без прапорця -c або --container використовуватимуть цей типовий контейнер.

    kubectl.kubernetes.io/default-logs-container (deprecated)

    Тип: Annotation

    Приклад: kubectl.kubernetes.io/default-logs-container: "front-end-app"

    Значення анотації — це імʼя контейнера, яке є типовим для логування для цього Podʼа. Наприклад, команда kubectl logs без прапорця -c або --container використовуватиме цей типовий контейнер.

    Примітка:

    Ця анотація є застарілою. Замість цього, слід використовувати анотацію kubectl.kubernetes.io/default-container. Версії Kubernetes 1.25 і новіші ігнорують цю анотацію.

    kubectl.kubernetes.io/last-applied-configuration

    Тип: Annotation

    Приклад: дивіться наступний фрагмент

        kubectl.kubernetes.io/last-applied-configuration: >
          {"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"name":"example","namespace":"default"},"spec":{"selector":{"matchLabels":{"app.kubernetes.io/name":foo}},"template":{"metadata":{"labels":{"app.kubernetes.io/name":"foo"}},"spec":{"containers":[{"image":"container-registry.example/foo-bar:1.42","name":"foo-bar","ports":[{"containerPort":42}]}]}}}}
    

    Використовується для: Всі обʼєкти

    Інструмент командного рядка kubectl використовує цю анотацію як застарілий механізм для відстеження змін. Цей механізм був замінений на Server-Side Apply.

    kubectl.kubernetes.io/restartedAt

    Тип: Annotation

    Приклад: kubectl.kubernetes.io/restartedAt: "2024-06-21T17:27:41Z"

    Використовується для: Deployment, ReplicaSet, StatefulSet, DaemonSet, Pod

    Ця анотація містить останній час перезапуску ресурсу (Deployment, ReplicaSet, StatefulSet або DaemonSet), під час якого kubectl запустив розгортання для примусового створення нових Podʼів. Команда kubectl rollout restart <RESOURCE> ініціює перезапуск, змінюючи (patch) за допомогою цієї анотації метадані шаблону всіх Podʼів ресурсу. У наведеному вище прикладі останній час перезапуску показано як 21 червня 2024 року о 17:27:41 UTC.

    Не слід вважати, що ця анотація відображає дату/час останнього оновлення; окремі зміни могли бути внесені з моменту останнього ручного розгортання.

    Якщо ви вручну встановите цю анотацію на Pod, нічого не станеться. Побічний ефект перезапуску зумовлений тим, як працюють керування робочими навантаженнями та шаблони Podʼів.

    endpoints.kubernetes.io/over-capacity (deprecated)

    Тип: Annotation

    Приклад: endpoints.kubernetes.io/over-capacity: truncated

    Використовується для: Endpoints

    Панель управління додає цю анотацію до обʼєкта Endpoints, якщо повʼязаний Service має понад 1000 точок доступу, що його забезпечують. Анотація вказує на те, що обʼєкт Endpoints перевищив ємність і кількість точок доступу була скорочена до 1000.

    Якщо кількість точок доступу бекенду опускається нижче 1000, панель управління видаляє цю анотацію.

    Примітка:

    API Endpoints є застарілим на користь EndpointSlice. Service може мати кілька обʼєктів EndpointSlice. Як результат, EndpointSlices не потребують обрізання.

    endpoints.kubernetes.io/last-change-trigger-time (deprecated)

    Тип: Annotation

    Приклад: endpoints.kubernetes.io/last-change-trigger-time: "2023-07-20T04:45:21Z"

    Використовується для: Endpoints

    Ця анотація встановлюється на обʼєкт Endpoints і представляє мітку часу (мітка часу зберігається у форматі рядка дати-часу RFC 3339. Наприклад, '2018-10-22T19:32:52.1Z'). Це мітка часу останньої зміни в деякому обʼєкті Pod або Service, яка спричинила зміну в обʼєкті Endpoints.

    Примітка:

    API Endpoints є застарілим на користь EndpointSlice.

    control-plane.alpha.kubernetes.io/leader (deprecated)

    Тип: Annotation

    Приклад: control-plane.alpha.kubernetes.io/leader={"holderIdentity":"controller-0","leaseDurationSeconds":15,"acquireTime":"2023-01-19T13:12:57Z","renewTime":"2023-01-19T13:13:54Z","leaderTransitions":1}

    Використовується для: Endpoints

    Панель управління раніше використовувала обʼєкт Endpoints для координації призначення лідера для панелі управління Kubernetes. Цей обʼєкт Endpoints містив анотацію з наступними деталями:

    • Хто є поточним лідером.
    • Час, коли було здобуто поточне лідерство.
    • Тривалість оренди (лідерства) у секундах.
    • Час, коли поточна оренда (поточне лідерство) повинна бути продовжена.
    • Кількість переходів лідерства, які сталися у минулому.

    Тепер Kubernetes використовує Leases для керування призначенням лідера для панелі управління Kubernetes.

    batch.kubernetes.io/job-tracking (deprecated)

    Тип: Annotation

    Приклад: batch.kubernetes.io/job-tracking: ""

    Використовується для: Jobs

    Раніше наявність цієї анотації на обʼєкті Job вказувала на те, що панель управління відстежує статус Job за допомогою завершувачів. Додавання або видалення цієї анотації більше не має впливу (з версії Kubernetes v1.27 і пізніше). Всі Jobs відстежуються за допомогою завершувачів.

    job-name (deprecated)

    Тип: Label

    Приклад: job-name: "pi"

    Використовується для: Jobs та Pods, що керуються через Jobs

    Примітка:

    Починаючи з Kubernetes 1.27, ця мітка застаріла. Kubernetes 1.27 та новіші версії ігнорують цю мітку і використовують мітку з префіксом job-name.

    controller-uid (deprecated)

    Тип: Label

    Приклад: controller-uid: "$UID"

    Використовується для: Jobs та Pods, що керуються через Jobs

    Примітка:

    Починаючи з Kubernetes 1.27, ця мітка застаріла. Kubernetes 1.27 та новіші версії ігнорують цю мітку і використовують мітку з префіксом controller-uid.

    batch.kubernetes.io/job-name

    Тип: Label

    Приклад: batch.kubernetes.io/job-name: "pi"

    Використовується для: Jobs та Pods, що керуються через Jobs

    Ця мітка використовується як зручний спосіб для отримання Podʼів, що належать Job. job-name походить від name Job і надає простий спосіб отримати Podʼи, що належать Job.

    batch.kubernetes.io/controller-uid

    Тип: Label

    Приклад: batch.kubernetes.io/controller-uid: "$UID"

    Використовується для: Jobs та Pods, що керуються через Jobs

    Ця мітка використовується як програмний спосіб отримати всі Podʼи, що належать Job. controller-uid є унікальним ідентифікатором, який встановлюється в поле selector, щоб контролер Job міг отримати всі відповідні Podʼи.

    scheduler.alpha.kubernetes.io/defaultTolerations

    Тип: Annotation

    Приклад: scheduler.alpha.kubernetes.io/defaultTolerations: '[{"operator": "Equal", "value": "value1", "effect": "NoSchedule", "key": "dedicated-node"}]'

    Використовується для: Namespace

    Ця анотація вимагає активування контролера допуску PodTolerationRestriction. Ключ цієї анотації дозволяє призначати tolerations для простору імен, і будь-які нові Podʼи, створені в цьому просторі імен, отримають ці tolerations.

    scheduler.alpha.kubernetes.io/tolerationsWhitelist

    Тип: Annotation

    Приклад: scheduler.alpha.kubernetes.io/tolerationsWhitelist: '[{"operator": "Exists", "effect": "NoSchedule", "key": "dedicated-node"}]'

    Використовується для: Namespace

    Ця анотація корисна лише тоді, коли активований контролер допуску (Alpha) PodTolerationRestriction. Значення анотації — це JSON-документ, який визначає список дозволених tolerations для простору імен, який анотується. Під час створення Podʼа або зміни його tolerations API-сервер перевіряє tolerations, щоб переконатися, що вони згадуються у списку дозволених. Pod буде допущено лише у випадку успішної перевірки.

    scheduler.alpha.kubernetes.io/preferAvoidPods (deprecated)

    Тип: Annotation

    Використовується для: Node

    Ця анотація вимагає активації втулка планування NodePreferAvoidPods. Цей втулок застарів починаючи з Kubernetes 1.22. Замість цього використовуйте Taints та Tolerations.

    node.kubernetes.io/not-ready

    Тип: Taint

    Приклад: node.kubernetes.io/not-ready: "NoExecute"

    Використовується для: Node

    Контролер Node визначає, чи готовий Node, відстежуючи стан його справності, і відповідно додає або видаляє цю позначку taint.

    node.kubernetes.io/unreachable

    Тип: Taint

    Приклад: node.kubernetes.io/unreachable: "NoExecute"

    Використовується для: Node

    Контролер Node додає позначку taint на Node, у якого NodeCondition Ready має значення Unknown.

    node.kubernetes.io/unschedulable

    Тип: Taint

    Приклад: node.kubernetes.io/unschedulable: "NoSchedule"

    Використовується для: Node

    Позначку taint буде додано до вузла під час його ініціалізації, щоб уникнути стану гонитви.

    node.kubernetes.io/memory-pressure

    Тип: Taint

    Приклад: node.kubernetes.io/memory-pressure: "NoSchedule"

    Використовується для: Node

    Kubelet виявляє тиск на памʼять на основі значень memory.available і allocatableMemory.available, спостережуваних на вузлі. Потім спостережені значення порівнюються з відповідними пороговими значеннями, які можна встановити на kubelet, щоб визначити, чи потрібно додати / видалити умову вузла та позначку taint.

    node.kubernetes.io/disk-pressure

    Тип: Taint

    Приклад: node.kubernetes.io/disk-pressure :"NoSchedule"

    Використовується для: Node

    Kubelet виявляє тиск на дискову памʼять на основі значень imagefs.available, imagefs.inodesFree, nodefs.available і nodefs.inodesFree (тільки для Linux), спостережуваних на вузлі. Потім спостережені значення порівнюються з відповідними пороговими значеннями, які можна встановити на kubelet, щоб визначити, чи потрібно додати / видалити умову вузла та позначку taint.

    node.kubernetes.io/network-unavailable

    Тип: Taint

    Приклад: node.kubernetes.io/network-unavailable: "NoSchedule"

    Використовується для: Node

    Це спочатку встановлюється kubelet, коли використовуваний хмарний провайдер вказує на потребу в додатковій конфігурації мережі. Тільки коли маршрут у хмарі налаштований належним чином, хмарний провайдер видаляє позначку taint.

    node.kubernetes.io/pid-pressure

    Тип: Taint

    Приклад: node.kubernetes.io/pid-pressure: "NoSchedule"

    Використовується для: Node

    Kubelet перевіряє D-значення розміру /proc/sys/kernel/pid_max та PID, використані Kubernetes на вузлі, щоб отримати кількість доступних PID, які вказуються метрикою pid.available. Потім цю метрику порівнюють з відповідним пороговим значенням, яке можна встановити на kubelet, щоб визначити, чи потрібно додати / видалити умову вузла та позначку taint.

    node.kubernetes.io/out-of-service

    Тип: Taint

    Приклад: node.kubernetes.io/out-of-service:NoExecute

    Використовується для: Node

    Користувач може вручну додати позначку taint на вузол, позначивши його як виведений з експлуатації (out-of-service). Якщо вузол позначено як out-of-service за допомогою цієї позначки taint, Podʼи на вузлі буде примусово видалено, якщо вони не мають відповідних tolerations, а операції відʼєднання томів для Podʼів, що завершуються на вузлі, будуть виконані негайно. Це дозволяє Podʼам на виведеному з експлуатації вузлі швидко відновитися на іншому вузлі.

    Увага:

    Дивіться Некоректне вимкнення вузла для отримання додаткових відомостей про те, коли і як використовувати цю позначку taint.

    node.cloudprovider.kubernetes.io/uninitialized

    Тип: Taint

    Приклад: node.cloudprovider.kubernetes.io/uninitialized: "NoSchedule"

    Використовується для: Node

    Встановлює цю позначку taint на вузлі, щоб позначити його як непридатний для використання, коли kubelet запускається з "зовнішнім" хмарним провайдером, доки контролер з cloud-controller-manager не ініціалізує цей вузол і потім не прибере позначку taint.

    node.cloudprovider.kubernetes.io/shutdown

    Тип: Taint

    Приклад: node.cloudprovider.kubernetes.io/shutdown: "NoSchedule"

    Використовується для: Node

    Якщо вузол перебуває у визначеному хмарним провайдером стані вимкнення, вузол отримує відповідну позначку taint node.cloudprovider.kubernetes.io/shutdown з ефектом NoSchedule.

    feature.node.kubernetes.io/*

    Тип: Label

    Приклад: feature.node.kubernetes.io/network-sriov.capable: "true"

    Використовується для: Node

    Ці мітки використовуються компонентом виявлення функцій вузла (NFD), щоб оголошувати функції на вузлі. Усі вбудовані мітки використовують простір імен мітки feature.node.kubernetes.io та мають формат feature.node.kubernetes.io/<feature-name>: "true". NFD має багато точок розширення для створення міток, специфічних для постачальника або застосунку. Для отримання детальної інформації дивіться посібник з налаштування.

    nfd.node.kubernetes.io/master.version

    Тип: Annotation

    Приклад: nfd.node.kubernetes.io/master.version: "v0.6.0"

    Використовується для: Node

    Для вузлів, на яких заплановано master виявлення функцій вузла (NFD), ця анотація записує версію майстра NFD. Вона використовується лише для інформаційних цілей.

    nfd.node.kubernetes.io/worker.version

    Тип: Annotation

    Приклад: nfd.node.kubernetes.io/worker.version: "v0.4.0"

    Використовується для: Nodes

    Ця анотація записує версію робочого процесу виявлення функцій вузла (NFD), якщо він працює на вузлі. Вона використовується лише для інформаційних цілей.

    nfd.node.kubernetes.io/feature-labels

    Тип: Annotation

    Приклад: nfd.node.kubernetes.io/feature-labels: "cpu-cpuid.ADX,cpu-cpuid.AESNI,cpu-hardware_multithreading,kernel-version.full"

    Використовується для: Nodes

    Ця анотація записує список міток функцій вузла, розділених комами, керованих виявленням функцій вузла (NFD). NFD використовує це для внутрішнього механізму. Ви не повинні редагувати цю анотацію самостійно.

    nfd.node.kubernetes.io/extended-resources

    Тип: Annotation

    Приклад: nfd.node.kubernetes.io/extended-resources: "accelerator.acme.example/q500,example.com/coprocessor-fx5"

    Використовується для: Nodes

    Ця анотація зберігає розділений комами список розширених ресурсів, керованих виявленням функцій вузла (NFD). NFD використовує це для внутрішнього механізму. Ви не повинні редагувати цю анотацію самостійно.

    nfd.node.kubernetes.io/node-name

    Тип: Label

    Приклад: nfd.node.kubernetes.io/node-name: node-1

    Використовується для: Nodes

    Мітка вказує, на який вузол націлений обʼєкт NodeFeature. Творці обʼєктів NodeFeature повинні встановлювати цю мітку, а споживачі обʼєктів повинні використовувати її для фільтрації функцій, призначених для певного вузла.

    Примітка:

    Ці мітки або анотації Node Feature Discovery (NFD) застосовуються лише до вузлів, де працює NFD. Щоб дізнатися більше про NFD та його компоненти, перейдіть до його офіційної документації.

    service.beta.kubernetes.io/aws-load-balancer-access-log-emit-interval (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-access-log-emit-interval: "5"

    Використовується для: Service

    Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження для Service на основі цієї анотації. Значення визначає, як часто балансувальник навантаження записує записи логу. Наприклад, якщо ви встановите значення на 5, записи логу будуть відбуватися з інтервалом у 5 секунд.

    service.beta.kubernetes.io/aws-load-balancer-access-log-enabled (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-access-log-enabled: "false"

    Використовується для: Service

    Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження для Service на основі цієї анотації. Ведення логу доступу активується, якщо ви встановите анотацію на значення "true".

    service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-name (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-name: example

    Використовується для: Service

    Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження для Service на основі цієї анотації. Балансувальник навантаження записує логи до корзини S3 з іменем, яке ви вказуєте.

    service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-prefix (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-prefix: "/example"

    Використовується для: Service

    Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження для Service на основі цієї анотації. Балансувальник навантаження записує обʼєкти журналів з префіксом, який ви вказуєте.

    service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags: "Environment=demo,Project=example"

    Використовується для: Service

    Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує теґи (концепція AWS) для балансувальника навантаження на основі розділених комами пар ключ/значення у значенні цієї анотації.

    service.beta.kubernetes.io/aws-load-balancer-alpn-policy (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-alpn-policy: HTTP2Optional

    Використовується для: Service

    Контролер балансувальника навантаження AWS використовує цю анотацію. Дивіться анотації у документації контролера балансувальника навантаження AWS.

    service.beta.kubernetes.io/aws-load-balancer-attributes (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-attributes: "deletion_protection.enabled=true"

    Використовується для: Service

    Контролер балансувальника навантаження AWS використовує цю анотацію. Для отримання додаткової інформації дивіться анотації у документації контролера балансувальника навантаження AWS.

    service.beta.kubernetes.io/aws-load-balancer-backend-protocol (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp

    Використовується для: Service

    Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує прослуховувач балансувальника навантаження на основі значення цієї анотації.

    service.beta.kubernetes.io/aws-load-balancer-connection-draining-enabled (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-connection-draining-enabled: "false"

    Використовується для: Service

    Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Налаштування connection draining балансувальника навантаження залежить від значення, яке ви встановлюєте.

    service.beta.kubernetes.io/aws-load-balancer-connection-draining-timeout (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-connection-draining-timeout: "60"

    Використовується для: Service

    Якщо ви налаштовуєте connection draining для Service з type: LoadBalancer, і ви використовуєте хмару AWS, інтеграція налаштовує період draining на основі цієї анотації. Значення, яке ви встановлюєте, визначає тайм-аут draining у секундах.

    service.beta.kubernetes.io/aws-load-balancer-ip-address-type (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-ip-address-type: ipv4

    Використовується для: Service

    Контролер балансувальника навантаження AWS використовує цю анотацію. Дивіться анотації у документації контролера балансувальника навантаження AWS.

    service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "60"

    Використовується для: Service

    Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Балансувальник має налаштований період тайм-ауту бездіяльності (у секундах), який застосовується до його зʼєднань. Якщо протягом періоду тайм-ауту бездіяльності не було відправлено або отримано жодних даних, балансувальник закриває зʼєднання.

    service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"

    Використовується для: Service

    Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Якщо ви встановите цю анотацію в значення "true", кожен вузол балансувальника навантаження розподіляє запити рівномірно серед зареєстрованих цілей у всіх увімкнених зонах доступності. Якщо ви вимкнете перехресне балансування зон, кожен вузол балансувальника навантаження розподіляє запити рівномірно серед зареєстрованих цілей лише у своїй зоні доступності.

    service.beta.kubernetes.io/aws-load-balancer-eip-allocations (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-eip-allocations: "eipalloc-01bcdef23bcdef456,eipalloc-def1234abc4567890"

    Використовується для: Service

    Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Значення є розділеним комами списком ідентифікаторів виділення еластичних IP-адрес.

    Ця анотація має сенс тільки для Service з type: LoadBalancer, де балансувальник навантаження є мережевим балансувальником AWS.

    service.beta.kubernetes.io/aws-load-balancer-extra-security-groups (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-extra-security-groups: "sg-12abcd3456,sg-34dcba6543"

    Використовується для: Service

    Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Значення анотації є розділеним комами списком додаткових груп безпеки AWS VPC для налаштування балансувальника навантаження.

    service.beta.kubernetes.io/aws-load-balancer-healthcheck-healthy-threshold (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-healthcheck-healthy-threshold: "3"

    Використовується для: Service

    Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Значення анотації визначає кількість послідовних успішних перевірок стану для бекенду, щоб вважати його справним для передавання трафіку.

    service.beta.kubernetes.io/aws-load-balancer-healthcheck-interval (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-healthcheck-interval: "30"

    Використовується для: Service

    Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Значення анотації визначає інтервал, в секундах, між запитами перевірки стану, які виконує балансувальник навантаження.

    service.beta.kubernetes.io/aws-load-balancer-healthcheck-path (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-healthcheck-path: /healthcheck

    Використовується для: Service

    Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Значення анотації визначає частину шляху URL, яка використовується для HTTP перевірок стану.

    service.beta.kubernetes.io/aws-load-balancer-healthcheck-port (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-healthcheck-port: "24"

    Використовується для: Service

    Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Значення анотації визначає порт, до якого підключається балансувальник навантаження під час виконання перевірок стану.

    service.beta.kubernetes.io/aws-load-balancer-healthcheck-protocol (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-healthcheck-protocol: TCP

    Використовується для: Service

    Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Значення анотації визначає спосіб, яким балансувальник навантаження перевіряє стан бекендів.

    service.beta.kubernetes.io/aws-load-balancer-healthcheck-timeout (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-healthcheck-timeout: "3"

    Використовується для: Service

    Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Значення анотації вказує кількість секунд до того, як запит, який ще не вдався, автоматично вважається неуспішним.

    service.beta.kubernetes.io/aws-load-balancer-healthcheck-unhealthy-threshold (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-healthcheck-unhealthy-threshold: "3"

    Використовується для: Service

    Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Значення анотації визначає кількість послідовних невдалих перевірок стану, необхідних для того, щоб бекенд вважався несправним для передавання трафіку.

    service.beta.kubernetes.io/aws-load-balancer-internal (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-internal: "true"

    Використовується для: Service

    Інтеграція менеджера контролера хмарних служб з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Коли ви встановлюєте цю анотацію у значення "true", інтеграція налаштовує внутрішній балансувальник навантаження.

    Якщо ви використовуєте контролер балансувальника навантаження AWS, дивіться service.beta.kubernetes.io/aws-load-balancer-scheme.

    service.beta.kubernetes.io/aws-load-balancer-manage-backend-security-group-rules (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-manage-backend-security-group-rules: "true"

    Використовується для: Service

    Контролер балансувальника навантаження AWS використовує цю анотацію. Дивіться анотації у документації контролера балансувальника навантаження AWS.

    service.beta.kubernetes.io/aws-load-balancer-name (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-name: my-elb

    Використовується для: Service

    Якщо ви встановлюєте цю анотацію на Service, і також анотуєте цей Service з service.beta.kubernetes.io/aws-load-balancer-type: "external", і ви використовуєте контролер балансувальника навантаження AWS у вашому кластері, тоді контролер балансувальника навантаження AWS встановлює назву цього балансувальника на значення, яке ви встановлюєте для цієї анотації.

    Дивіться анотації у документації контролера балансувальника навантаження AWS.

    service.beta.kubernetes.io/aws-load-balancer-nlb-target-type (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "true"

    Використовується для: Service

    Контролер балансувальника навантаження AWS використовує цю анотацію. Дивіться анотації у документації контролера балансувальника навантаження AWS.

    service.beta.kubernetes.io/aws-load-balancer-private-ipv4-addresses (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-private-ipv4-addresses: "198.51.100.0,198.51.100.64"

    Використовується для: Service

    Контролер балансувальника навантаження AWS використовує цю анотацію. Дивіться анотації у документації контролера балансувальника навантаження AWS.

    service.beta.kubernetes.io/aws-load-balancer-proxy-protocol (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*"

    Використовується для: Service

    Офіційна інтеграція Kubernetes з AWS Elastic Load Balancing налаштовує балансувальник навантаження на основі цієї анотації. Єдине допустиме значення — "*", що вказує на те, що балансувальник навантаження повинен обгортати TCP-зʼєднання до Podʼа бекенду за допомогою протоколу PROXY.

    service.beta.kubernetes.io/aws-load-balancer-scheme (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-scheme: internal

    Використовується для: Service

    Контролер балансувальника навантаження AWS використовує цю анотацію. Дивіться анотації у документації контролера балансувальника навантаження AWS.

    service.beta.kubernetes.io/aws-load-balancer-security-groups (deprecated)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-security-groups: "sg-53fae93f,sg-8725gr62r"

    Використовується для: Service

    Контролер балансувальника навантаження AWS використовує цю анотацію для вказівки розділеного комами списку груп безпеки, які ви хочете прикріпити до балансувальника навантаження AWS. Підтримуються як імʼя, так і ID груп безпеки, де імʼя відповідає тегу Name, а не атрибуту groupName.

    Коли ця анотація додається до Service, контролер балансувальника навантаження прикріплює групи безпеки, на які вказує анотація, до балансувальника навантаження. Якщо ви пропускаєте цю анотацію, контролер балансувальника навантаження AWS автоматично створює нову групу безпеки і прикріплює її до балансувальника навантаження.

    Примітка:

    Починаючи з Kubernetes v1.27, ця анотація більше не встановлюється або не читається безпосередньо. Однак контролер балансувальника навантаження AWS (частина проєкту Kubernetes) все ще використовує анотацію service.beta.kubernetes.io/aws-load-balancer-security-groups.

    service.beta.kubernetes.io/load-balancer-source-ranges (deprecated)

    Приклад: service.beta.kubernetes.io/load-balancer-source-ranges: "192.0.2.0/25"

    Використовується для: Service

    Контролер балансувальника навантаження AWS використовує цю анотацію. Вам слід встановити .spec.loadBalancerSourceRanges для Service замість цього.

    service.beta.kubernetes.io/aws-load-balancer-ssl-cert (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012"

    Використовується для: Service

    Офіційна інтеграція з AWS Elastic Load Balancing налаштовує TLS для Service з type: LoadBalancer на основі цієї анотації. Значення анотації — це імʼя ресурсу AWS (ARN) сертифіката X.509, який повинен використовувати прослуховувач балансувальника навантаження.

    (Протокол TLS базується на старішій технології, яку скорочено називають SSL.)

    service.beta.kubernetes.io/aws-load-balancer-ssl-negotiation-policy (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-ssl-negotiation-policy: ELBSecurityPolicy-TLS-1-2-2017-01

    Офіційна інтеграція з AWS Elastic Load Balancing налаштовує TLS для Service з type: LoadBalancer на основі цієї анотації. Значення анотації — це імʼя політики AWS для узгодження TLS з клієнтом.

    service.beta.kubernetes.io/aws-load-balancer-ssl-ports (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "*"

    Офіційна інтеграція з AWS Elastic Load Balancing налаштовує TLS для Service з type: LoadBalancer на основі цієї анотації. Значення анотації може бути або "*", що означає, що всі порти балансувальника навантаження повинні використовувати TLS, або це може бути розділений комами список номерів портів.

    service.beta.kubernetes.io/aws-load-balancer-subnets (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-subnets: "private-a,private-b"

    Офіційна інтеграція Kubernetes з AWS використовує цю анотацію для налаштування балансувальника навантаження та визначення, в яких зонах доступності AWS розгорнути керовану службу балансування навантаження. Значення може бути або розділений комами список імен підмереж, або розділений комами список ідентифікаторів підмереж.

    service.beta.kubernetes.io/aws-load-balancer-target-group-attributes (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-target-group-attributes: "stickiness.enabled=true,stickiness.type=source_ip"

    Використовується для: Service

    Контролер балансувальника навантаження AWS використовує цю анотацію. Дивіться анотації у документації контролера балансувальника навантаження AWS.

    service.beta.kubernetes.io/aws-load-balancer-target-node-labels (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-target-node-labels: "kubernetes.io/os=Linux,topology.kubernetes.io/region=us-east-2"

    Офіційна інтеграція Kubernetes з AWS використовує цю анотацію для визначення, які вузли у вашому кластері повинні бути розглянуті як дійсні цілі для балансувальника навантаження.

    service.beta.kubernetes.io/aws-load-balancer-type (beta)

    Приклад: service.beta.kubernetes.io/aws-load-balancer-type: external

    Офіційні інтеграції Kubernetes з AWS використовують цю анотацію для визначення того, чи має інтеграція з хмарним провайдером AWS керувати Service з type: LoadBalancer.

    Є два допустимі значення:

    nlb
    менеджер контролера хмарних послуг налаштовує мережевий балансувальник навантаження
    external
    менеджер контролера хмарних послуг не налаштовує жодного балансувальника навантаження

    Якщо ви розгортаєте Service з type: LoadBalancer на AWS і не встановлюєте жодної анотації service.beta.kubernetes.io/aws-load-balancer-type, інтеграція з AWS розгортатиме класичний балансувальник навантаження Elastic Load Balancer. Ця поведінка, коли анотація відсутня, є типовою, якщо ви не вказуєте інше.

    Коли ви встановлюєте цю анотацію на значення external на Service з type: LoadBalancer, а у вашому кластері є працююче розгортання контролера балансувальника навантаження AWS, то контролер балансувальника навантаження AWS намагатиметься розгорнути балансувальник навантаження на основі специфікації Service.

    Увага:

    Не змінюйте і не додавайте анотацію service.beta.kubernetes.io/aws-load-balancer-type до наявного обʼєкта Service. Для отримання додаткових відомостей дивіться документацію AWS з цього питання.

    service.beta.kubernetes.io/azure-load-balancer-disable-tcp-reset (deprecated)

    Приклад: service.beta.kubernetes.io/azure-load-balancer-disable-tcp-reset: "false"

    Використовується для: Service

    Ця анотація працює лише для Service, підтримуваних стандартним балансувальником навантаження Azure. Вона використовується у Service для вказівки, чи слід вимикати або вмикати скидання TCP при бездіяльності. Якщо увімкнено, це допомагає застосункам працювати більш передбачувано, виявляти обриви зʼєднання, видаляти застарілі зʼєднання та ініціювати нові. Ви можете встановити значення як true або false.

    Дивіться Скидання TCP балансувальника навантаження для отримання додаткової інформації.

    Примітка:

    Ця анотація є застарілою.

    pod-security.kubernetes.io/enforce

    Тип: Label

    Приклад: pod-security.kubernetes.io/enforce: "baseline"

    Використовується для: Namespace

    Значення обовʼязково повинно бути одним із privileged, baseline або restricted, що відповідає рівням стандарту безпеки для Podʼів. Зокрема, мітка enforce забороняє створення будь-якого Podʼа у Namespace з цією міткою, який не відповідає вимогам, визначеним на вказаному рівні.

    Для отримання додаткової інформації перегляньте Застосування безпеки Podʼів на рівні простору імен.

    pod-security.kubernetes.io/enforce-version

    Тип: Label

    Приклад: pod-security.kubernetes.io/enforce-version: "1.37"

    Використовується для: Namespace

    Значення має бути latest або дійсною версією Kubernetes у форматі v<major>.<minor>. Це визначає версію політик стандарту безпеки для Podʼів, які застосовуються при перевірці Podʼа.

    Для отримання додаткової інформації дивіться Застосування безпеки Podʼів на рівні простору імен.

    pod-security.kubernetes.io/audit

    Тип: Label

    Приклад: pod-security.kubernetes.io/audit: "baseline"

    Використовується для: Namespace

    Значення має бути одним із privileged, baseline або restricted, що відповідають рівням стандарту безпеки для Podʼів. Зокрема, мітка audit не перешкоджає створенню Podʼа у Namespace з цією міткою, який не відповідає вимогам, визначеним на вказаному рівні, але додає цю анотацію до Podʼа.

    Для отримання додаткової інформації дивіться Застосування безпеки Podʼів на рівні простору імен.

    pod-security.kubernetes.io/audit-version

    Тип: Label

    Приклад: pod-security.kubernetes.io/audit-version: "1.37"

    Використовується для: Namespace

    Значення повинно бути latest або дійсною версією Kubernetes у форматі v<major>.<minor>. Це визначає версію політик стандарту безпеки для Podʼів, які застосовуються під час перевірки Podʼа.

    Для отримання додаткової інформації дивіться Застосування безпеки Podʼів на рівні простору імен.

    pod-security.kubernetes.io/warn

    Тип: Label

    Приклад: pod-security.kubernetes.io/warn: "baseline"

    Використовується для: Namespace

    Значення має бути одним із privileged, baseline або restricted, що відповідають рівням стандарту безпеки для Podʼів. Зокрема, мітка warn не перешкоджає створенню Podʼа у Namespace з цією міткою, який не відповідає вимогам, визначеним на вказаному рівні, але повертає попередження користувачу після цього. Зверніть увагу, що попередження також відображаються при створенні або оновленні обʼєктів, які містять шаблони Podʼа, такі як Deployments, Jobs, StatefulSets тощо.

    Для отримання додаткової інформації дивіться Застосування безпеки Podʼів на рівні простору імен.

    pod-security.kubernetes.io/warn-version

    Тип: Label

    Приклад: pod-security.kubernetes.io/warn-version: "1.37"

    Використовується для: Namespace

    Значення повинно бути latest або дійсною версією Kubernetes у форматі v<major>.<minor>. Це визначає версію політик стандарту безпеки для Podʼів, які застосовуються при перевірці поданих Podʼів. Зверніть увагу, що попередження також відображаються при створенні або оновленні обʼєктів, які містять шаблони Podʼа, такі як Deployments, Jobs, StatefulSets тощо.

    Для отримання додаткової інформації дивіться Застосування безпеки Podʼів на рівні простору імен.

    rbac.authorization.kubernetes.io/autoupdate

    Тип: Annotation

    Приклад: rbac.authorization.kubernetes.io/autoupdate: "false"

    Використовується для: ClusterRole, ClusterRoleBinding, Role, RoleBinding

    Коли ця анотація встановлена у значення "true" на типових обʼєктах RBAC, створених API-сервером, вони автоматично оновлюються при запуску сервера для додавання відсутніх дозволів та субʼєктів (додаткові дозволи та субʼєкти залишаються на місці). Щоб запобігти автоматичному оновленню певної ролі або привʼязки ролі, встановіть цю анотацію у значення "false". Якщо ви створюєте власні обʼєкти RBAC і встановлюєте цю анотацію у значення "false", kubectl auth reconcile (який дозволяє узгоджувати довільні обʼєкти RBAC у маніфесті) враховує цю анотацію і автоматично не додає відсутні дозволи та субʼєкти.

    kubernetes.io/psp (deprecated)

    Тип: Annotation

    Приклад: kubernetes.io/psp: restricted

    Використовується для: Pod

    Ця анотація була актуальною лише у випадку використання обʼєктів PodSecurityPolicy. Kubernetes v1.37 не підтримує API PodSecurityPolicy.

    Коли контролер допуску PodSecurityPolicy дав дозвіл Podʼу, він модифікував Pod так, щоб мати цю анотацію. Значення анотації було імʼям PodSecurityPolicy, яке використовувалось для валідації.

    seccomp.security.alpha.kubernetes.io/pod (non-functional)

    Тип: Annotation

    Використовується для: Pod

    Kubernetes до версії 1.25 дозволяв вам налаштовувати поведінку seccomp за допомогою цієї анотації. Див. Обмеження системних викликів контейнера за допомогою seccomp, щоб дізнатися підтримуваний спосіб вказування обмежень seccomp для Podʼа.

    container.seccomp.security.alpha.kubernetes.io/[NAME] (non-functional)

    Тип: Annotation

    Використовується для: Pod

    До версії 1.25 Kubernetes дозволяв налаштовувати поведінку seccomp за допомогою цієї анотації. Дивіться Обмеження системних викликів контейнера за допомогою seccomp, щоб дізнатися підтримуваний спосіб вказування обмежень seccomp для Podʼа.

    snapshot.storage.kubernetes.io/allow-volume-mode-change

    Тип: Annotation

    Приклад: snapshot.storage.kubernetes.io/allow-volume-mode-change: "true"

    Використовується для: VolumeSnapshotContent

    Значення може бути або true, або false. Це визначає, чи може користувач змінювати режим джерельного тому при створенні PersistentVolumeClaim із VolumeSnapshot.

    Зверніться до Зміна режиму тому знімка та Документації розробника Kubernetes CSI для отримання додаткової інформації.

    scheduler.alpha.kubernetes.io/critical-pod (deprecated)

    Тип: Annotation

    Приклад: scheduler.alpha.kubernetes.io/critical-pod: ""

    Використовується для: Pod

    Ця анотація повідомляє панель управління Kubernetes, що Pod є критичним, щоб descheduler не видаляв цей Pod.

    Примітка:

    Починаючи з версії 1.16, ця анотація була видалена на користь Пріоритету Podʼів.

    jobset.sigs.k8s.io/jobset-name

    Тип: Label, Annotation

    Приклад: jobset.sigs.k8s.io/jobset-name: "my-jobset"

    Використовується для: Jobs, Pods

    Ця мітка/анотація використовується для зберігання назви JobSet, до якого належить Job або Pod. JobSet — це API розширення, яке ви можете розгорнути у своєму кластері Kubernetes.

    jobset.sigs.k8s.io/replicatedjob-replicas

    Тип: Label, Annotation

    Приклад: jobset.sigs.k8s.io/replicatedjob-replicas: "5"

    Використовується для: Jobs, Pods

    Ця мітка/анотація вказує на кількість реплік для ReplicatedJob.

    jobset.sigs.k8s.io/replicatedjob-name

    Тип: Label, Annotation

    Приклад: jobset.sigs.k8s.io/replicatedjob-name: "my-replicatedjob"

    Використовується для: Jobs, Pods

    Ця мітка або анотація зберігає імʼя реплікованого завдання, частиною якого є цей Job або Pod.

    jobset.sigs.k8s.io/job-index

    Тип: Label, Annotation

    Приклад: jobset.sigs.k8s.io/job-index: "0"

    Використовується для: Jobs, Pods

    Ця мітка/анотація встановлюється контролером JobSet для дочірніх Job і Podʼів. Вона містить індекс репліки Job у межах батьківського ReplicatedJob.

    jobset.sigs.k8s.io/job-key

    Тип: Label, Annotation

    Приклад: jobset.sigs.k8s.io/job-key: "0f1e93893c4cb372080804ddb9153093cb0d20cefdd37f653e739c232d363feb"

    Використовується для: Jobs, Pods

    Контролер JobSet встановлює цю мітку (а також анотацію з тим самим ключем) на дочірніх Job і Podʼах JobSet. Значенням є хеш SHA256 імені Job разом із його простором імен.

    alpha.jobset.sigs.k8s.io/exclusive-topology

    Тип: Annotation

    Приклад: alpha.jobset.sigs.k8s.io/exclusive-topology: "zone"

    Використовується для: JobSets, Jobs

    Ви можете встановити цю мітку/анотацію на JobSet, щоб забезпечити ексклюзивне розміщення Job для кожної топологічної групи. Ви також можете визначити цю мітку або анотацію в шаблоні реплікованого завдання. Щоб дізнатися більше, прочитайте документацію до JobSet.

    alpha.jobset.sigs.k8s.io/node-selector

    Тип: Annotation

    Приклад: alpha.jobset.sigs.k8s.io/node-selector: "true"

    Використовується для: Jobs, Pods

    Ця мітка/анотація може бути застосована до JobSet. Коли вона встановлена, контролер JobSet змінює Job і відповідні їм Podʼи, додаючи селектори вузлів і tolerations. Це забезпечує ексклюзивне розміщення завдань у кожному домені топології, обмежуючи планування цих Podʼів конкретними вузлами на основі стратегії.

    alpha.jobset.sigs.k8s.io/namespaced-job

    Тип: Label

    Приклад: alpha.jobset.sigs.k8s.io/namespaced-job: "default_myjobset-replicatedjob-0"

    Використовується для: Nodes

    Ця мітка встановлюється на вузлах вручну або автоматично (наприклад, кластерним автомасштабувальником). Коли alpha.jobset.sigs.k8s.io/node-selector встановлено у "true", контролер JobSet додає nodeSelector до цієї мітки вузла (разом із toleration до позначки taint alpha.jobset.sigs.k8s.io/no-schedule, описаної далі).

    alpha.jobset.sigs.k8s.io/no-schedule

    Тип: Taint

    Приклад: alpha.jobset.sigs.k8s.io/no-schedule: "NoSchedule"

    Використовується для: Nodes

    Ця позначка taint встановлюється або вручну, або автоматично (наприклад, кластерним автомасштабувальником) на вузлах. Коли alpha.jobset.sigs.k8s.io/node-selector встановлено у "true", контролер JobSet додає toleration до цієї позначки taint вузла (разом із селектором вузла до мітки alpha.jobset.sigs.k8s.io/namespaced-job, описаної раніше).

    jobset.sigs.k8s.io/coordinator

    Тип: Annotation, Label

    Приклад: jobset.sigs.k8s.io/coordinator: "myjobset-workers-0-0.headless-svc"

    Використовується для: Jobs, Pods

    Ця анотація/мітка використовується на Job та Podʼах для зберігання стабільної мережевої точки доступу, через яку можна звернутися до Podʼа координатора, якщо у специфікації JobSet визначено поле .spec.coordinator.

    Анотації, що використовуються для аудиту

    Дивіться більше деталей на сторінці Анотації аудиту.

    kubeadm

    kubeadm.alpha.kubernetes.io/cri-socket (deprecated)

    Тип: Annotation

    Приклад: kubeadm.alpha.kubernetes.io/cri-socket: unix:///run/containerd/container.sock

    Використовується для: Node

    Примітка:

    Починаючи з v1.34, ця анотація застаріла, kubeadm більше не буде встановлювати та використовувати її.

    kubeadm.kubernetes.io/etcd.advertise-client-urls

    Тип: Annotation

    Приклад: kubeadm.kubernetes.io/etcd.advertise-client-urls: https://172.17.0.18:2379

    Використовується для: Pod

    Анотація, яку kubeadm додає до локально керованих Podʼів etcd для відстеження списку URL-адрес, до яких повинні підключатися клієнти etcd. Це використовується головним чином для перевірки стану справності кластера etcd.

    kubeadm.kubernetes.io/kube-apiserver.advertise-address.endpoint

    Тип: Annotation

    Приклад: kubeadm.kubernetes.io/kube-apiserver.advertise-address.endpoint: https://172.17.0.18:6443

    Використовується для: Pod

    Анотація, яку kubeadm додає до локально керованих Podʼів kube-apiserver для відстеження оголошеної адреси/порту для цього екземпляра API-сервера.

    kubeadm.kubernetes.io/component-config.hash

    Тип: Annotation

    Приклад: kubeadm.kubernetes.io/component-config.hash: 2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae

    Використовується для: ConfigMap

    Анотація, яку kubeadm додає до ConfigMapʼів, що ним керуються для налаштування компонентів. Вона містить хеш (SHA-256), який використовується для визначення, чи застосував користувач налаштування, відмінні від типових налаштувань kubeadm для конкретного компонента.

    node-role.kubernetes.io/control-plane

    Тип: Label

    Використовується для: Node

    Мітка-маркер, що вказує, що вузол використовується для запуску компонентів панелі управління. Інструмент kubeadm застосовує цю мітку до вузлів панелі управління, якими він керує. Інші інструменти управління кластером зазвичай також встановлюють цю позначку taint.

    Ви можете позначити вузли панелі управління цією міткою, щоб спростити розміщення Podʼів лише на цих вузлах або уникнути запуску Podʼів на панелі управління. Якщо ця мітка встановлена, контролер EndpointSlice ігнорує цей вузол під час розрахунку підказок, що враховують топологію.

    node-role.kubernetes.io/*

    Тип: Label

    Приклад: node-role.kubernetes.io/gpu: gpu

    Використовується для: Node

    Ця необовʼязкова мітка застосовується до вузла, коли ви хочете позначити роль вузла. Роль вузла (текст після / у ключі мітки) можна встановити, якщо загальний ключ відповідає правилам синтаксису для міток обʼєктів.

    У Kubernetes визначено одну специфічну роль вузла, панель управління. Мітка, яку ви можете використовувати для позначення цієї ролі вузла, має вигляд node-role.kubernetes.io/control-plane.

    node-role.kubernetes.io/control-plane

    Тип: Taint

    Приклад: node-role.kubernetes.io/control-plane:NoSchedule

    Використовується для: Node

    Позначка taint, яку kubeadm застосовує до вузлів панелі управління, щоб обмежити розміщення Podʼів і дозволити планувати на них лише певні Podʼи.

    Якщо цю позначку taint застосовано, вузли панелі управління дозволяють планувати на них лише критичні навантаження. Ви можете вручну видалити цю позначку taint за допомогою такої команди на відповідному вузлі.

    kubectl taint nodes <node-name> node-role.kubernetes.io/control-plane:NoSchedule-
    

    node-role.kubernetes.io/master (deprecated)

    Тип: Taint

    Використовується для: Node

    Приклад: node-role.kubernetes.io/master:NoSchedule

    Позначка taint, яку kubeadm раніше застосовував до вузлів панелі управління, щоб дозволити планувати на них лише критичні навантаження. Замінена позначкою taint node-role.kubernetes.io/control-plane. kubeadm більше не встановлює і не використовує цю застарілу позначку taint.

    resource.kubernetes.io/admin-access

    Тип: Label

    Приклад: resource.kubernetes.io/admin-access: "true"

    Використовується для: Namespace

    Використовується для надання адміністративного доступу до певних типів API resource.k8s.io у просторі імен. Коли ця мітка встановлена у просторі імен зі значенням "true" (з урахуванням регістру), вона дозволяє використовувати adminAccess: true у будь-яких типах API resource.k8s.io, що належать до простору імен. Наразі цей дозвіл застосовується до обʼєктів ResourceClaim та ResourceClaimTemplate.

    Докладнішу інформацію див. у статті Адміністративний доступ у динамічному виділенні ресурсів.